使用java获取ping结果

时间:2014-02-15 10:56:09

标签: java jsp

我正在尝试获取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)字节的数据.64字节来自   maa03s16-in-f5.1e100.net(74.125.236.165):icmp_req = 1 ttl = 52 time = 20.5   来自maa03s16-in-f5.1e100.net的ms64字节(74.125.236.165):icmp_req = 2   来自maa03s16-in-f5.1e100.net的ttl = 52 time = 11.4 ms64字节   (74.125.236.165):icmp_req = 3 ttl = 52 time = 19.6 ms --- google.com ping   统计--- 3个包传输,3个接收,0%丢包,时间   2002msrtt min / avg / max / mdev = 11.494 / 17.252 / 20.579 / 4.089 m

它的格式正确。如何添加换行符? 好。我真正想要的是这样的。

只有最后一行。

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

我希望在jsp页面中显示min,avg,max值的值。请指导我。

2 个答案:

答案 0 :(得分:1)

尝试

pingResult += inputLine + "\n";

请注意,在这种情况下使用StringBuilder是典型的,无论性能影响如何

答案 1 :(得分: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;

}

由于