【问题标题】:Getting the ping results using java使用java获取ping结果
【发布时间】:2014-02-15 10:56:08
【问题描述】:

我正在尝试获取 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 (74.125.236.165) 的 ms64 字节:icmp_req=2 ttl=52 时间=11.4 ms64 字节,来自 maa03s16-in-f5.1e100.net (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 的值。请指导我。

【问题讨论】:

  • 如果您找到了问题的解决方案,请将其作为答案发布并接受,以便其他用户知道此问题已解决。

标签: java jsp


【解决方案1】:

试试

pingResult += inputLine + "\n";

请注意,在这种情况下通常使用 StringBuilder,无论性能影响如何

【讨论】:

  • 我添加了 pingResult += inputLine+ "\n";没有帮助。 :(
【解决方案2】:

更新: 我更新了代码。现在我只得到最后一行作为输出。

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;

}

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多