java - 从 Java 中的 ping 结果中解析出时间部分

标签 java ping bufferedreader runtime.exec

我设法修改一个程序来 ping 对等计算机并获取 ping 计数。如何从 ping 计数结果中实时解析出 time = ?ms

代码:

 public static void main(String[] args) {

    String ip = "192.168.1.1 -n 10";
    String pingResult = "";

    String pingCmd = "ping " + 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(Exception e) {
       System.out.println(e);
    }
}

输出:

Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.1: bytes=32 time=4ms TTL=64
Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.1: bytes=32 time=20ms TTL=64
Reply from 192.168.1.1: bytes=32 time=9ms TTL=64
Reply from 192.168.1.1: bytes=32 time=3ms TTL=64
Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.1: bytes=32 time=3ms TTL=64

Ping statistics for 192.168.1.1:
    Packets: Sent = 10, Received = 10, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 20ms, Average = 4ms

我需要声明一个变量并使用 BufferedReader 将“time = ?ms”写入文本文件吗?

我正在寻求提示,谢谢。

最佳答案

试试这个:

Pattern pattern = Pattern.compile("time=(\\d+)ms");
Matcher m = null;
while ((inputLine = in.readLine()) != null) {
    m = pattern.matcher(inputLine);
    if (m.find()) {
        System.out.println(m.group(1));
    }
}

它输出捕获模式的毫秒值。

关于java - 从 Java 中的 ping 结果中解析出时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14937019/

相关文章:

instance - 无法在 LAN 上访问 openstack 实例

java - 从文本文件中获取字符串并将每一行分配给值(一次 2 个并插入到 LinkedHashMap 中)

java - 无法在测试类中使用 Autowired,但可以在实现类中使用它?

java - JEE7 : Do EJB and CDI beans support container-managed transactions?

java - JAVA返回HWND的方法

java - 我应该如何为子类编写单元测试?

android - Android 中的互联网连接

python - Python ping 扫描脚本问题

java - 一个简单的java客户端服务器程序

java - 在 Java 11 中使用流返回树形图