zoukankan      html  css  js  c++  java
  • 测试网络丢包情况代码

    import java.io.*;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class PingIpUtils {
    
     public static boolean isWindowsOS() {
      boolean isWindowsOS = false;
      String osName = System.getProperty("os.name");
      if (osName.toLowerCase().indexOf("windows") > -1) {
       isWindowsOS = true;
      }
      return isWindowsOS;
     }
     public static String losePackage(String ip){
      String situation=pingIp(ip);
      if(situation!=null && situation.equals("连接异常")){
       return situation; 
      }else{
       if(situation!=null && Integer.parseInt(situation)>=3){
        return situation+"%  丢包情况严重!!!";
       }else{
        return situation+"%  正常!!!";
       }
      }
     }
     public static String pingIp(String ip){
          String line = null;
          String command = "ping -n 100 "+ip;
          String command1= "ping -c 100 "+ip;
          String lose="";
          int index=0;
      try
            {
       Process pro =null;
       BufferedReader buf=null;
          if(isWindowsOS()){
           //windows获取丢包情况
           pro=Runtime.getRuntime().exec(command);
           buf= new BufferedReader(new InputStreamReader(pro.getInputStream(),"GBK"));
           while ((line = buf.readLine()) != null){
                     if(line.contains("%")){
                      lose= line.subSequence(line.indexOf("(")+1, line.indexOf("%")).toString();
                     }
                }
        }else{
         //linux下获取丢包情况
         pro=Runtime.getRuntime().exec(command1);
         buf= new BufferedReader(new InputStreamReader(pro.getInputStream())); 
         while ((line = buf.readLine()) != null){
                    if(line.contains("packet loss")){
                     Pattern p = Pattern.compile("received");
                    Matcher m = p.matcher(line);
                    while(m.find()){
                   index=m.end();
                    }
                    lose= line.subSequence(index+1, line.indexOf("%")).toString().trim();
                  }
            }
        }
             }catch (Exception ex){
                return "连接异常";
            }
      return lose;
     }
     public static void main(String[] args) {
      System.out.println(pingIp("40.1.32.50"));
     }
     }
    
     
  • 相关阅读:
    仓鼠找sugar(LCA)
    bzoj4481非诚勿扰(期望dp)
    NOIP2011Mayan游戏(模拟)
    [国家集训队]旅游
    NOIP2012疫情控制(二分答案+树上贪心)
    NOIP2017题解
    [SCOI2010]幸运数字(容斥+爆搜)
    [JSOI2008]Blue Mary的战役地图(二分+哈希)
    [湖南集训]谈笑风生(主席树)
    NOIP2016题解
  • 原文地址:https://www.cnblogs.com/holdon521/p/4318332.html
Copyright © 2011-2022 走看看