我需要对某些 ip/机器执行 ping。该代码可以在任何类型的平台(windows、linux、mac)上执行,我需要获取有关丢失和往返时间的信息。 所以 java 的 ping 执行程序不够好,因为我需要将 ping 响应解析为字符串,这因平台和操作系统语言而异。 那我需要做什么?我知道有类似 JNI 的东西,但我是 Java 的新手,所以在这里需要一点帮助。 这仍然意味着我需要每个平台都有本地实现吗? 有什么例子或建议吗?
最佳答案
由于 java 不是平台独立的,您可以使用 System.getProperty("os.name")
询问您拥有哪个操作系统并解析响应或根据它定义命令。
或者你可以在 InetAddress
中使用 isReachable(int timeout)
这似乎是最接近 ICMP ECHO REQUEST 的实现,但它不会为你提供有关的信息损失和往返时间。
另一个想法是使用 tracert/tracepath 而不是 ping 来获得往返?检查this thread了解更多信息。
关于java - 用java Ping到多平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177223/