2014-02-15 3 views
0

Я пытаюсь получить последнюю строку результата ping. Я не разработчик Java. Я учусь, поэтому, пожалуйста, нести мои ошибки.Получение результатов ping с использованием java

Это программа, которую я написал.

private static String pingTest(String ip) { 
    // TODO Auto-generated method stub 
    String pingResult = ""; 
// System.out.println("Came in pingTest"); 
    String pingCmd = "ping -c 3 " + ip; 
    try { 
     Runtime r = Runtime.getRuntime(); 
     Process p = r.exec(pingCmd); 
     BufferedReader in = new BufferedReader(new 
     InputStreamReader(p.getInputStream())); 
     String inputLine; 
     while ((inputLine = in.readLine()) != null) { 
      System.out.println(inputLine);        
      pingResult += inputLine; 
      } 
     in.close(); 
    } catch (IOException e) { 
     System.out.println(e); 
    } 
    return pingResult; 

Я получаю результат следующим образом:

PING google.com (74.125.236.165) 56 (84) байт data.64 байт из maa03s16 в-f5.1e100 .net (74.125.236.165): icmp_req = 1 ttl = 52 time = 20.5 ms64 bytes from maa03s16-in-f5.1e100.net (74.125.236.165): icmp_req = 2 ttl = 52 time = 11.4 ms64 байт от maa03s16 -in-f5.1e100.net (74.125.236.165): icmp_req = 3 ttl = 52 раз = 19,6 мс --- google.com ping статистика --- 3 переданных пакета, 3 полученных, 0% потери пакетов, время 2002msrtt мин/ср/макс/mdev = 11,494/17,252/20,579/4,089 м

Его OT должным образом отформатированы. как добавить разрывы строк? Ну. то, что я действительно хочу, это что-то вроде этого.

Только последняя строка.

rtt min/avg/max/mdev = 20.774/20.962/21.085/0.135 ms 

и я хочу показать значения min, avg, max значений на моей странице jsp. Пожалуйста, направляйте меня.

+0

Если вы нашли решение вашей проблемы, то отправить его в ответ и принять его, так, чтобы другие пользователи могли знать, что эта проблема решена. –

ответ

1

попробовать

pingResult += inputLine + "\n"; 

к сведению, что это типичный использовать StringBuilder в таких ситуациях, независимо от того, что Perfomance воздействие

+0

Я добавил pingResult + = inputLine + "\ n"; Не помогло. :( – Randeep

0

Обновление: Я обновил код. Теперь я получаю только последнюю строку в качестве вывода.

private static String pingTest(String ip) { 
    // TODO Auto-generated method stub 
    String pingResult = ""; 
// System.out.println("Came in pingTest"); 
    String pingCmd = "ping -c 3 " + ip; 
    try { 
     Runtime r = Runtime.getRuntime(); 
     Process p = r.exec(pingCmd); 
     BufferedReader in = new BufferedReader(new 
     InputStreamReader(p.getInputStream())); 
     String inputLine; 
     while ((inputLine = in.readLine()) != null) { 
      //System.out.println(inputLine); 
      if (inputLine.contains("rtt")) 
      pingResult += inputLine+ "\n"; 
      } 
     in.close(); 
    } catch (IOException e) { 
     System.out.println(e); 
    } 
    return pingResult; 

} 

Благодаря

Смежные вопросы