java - 用java Ping到多平台

标签 java java-native-interface ping icmp

我需要对某些 ​​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/

相关文章:

android - 在 android studio 中包含共享库 .so

java - C获取函数地址

windows - 在 Windows 上,ICMPv6 回显回复缺少 IP header

java - 使用 Crawler4j 爬网站点列表

java - "public class Nir<E>"是什么意思?

java - 打包jar无效聚合器项目需要pom作为打包

java - 使用 Java 向设备发送命令

c - 发送 ICMP ping

PHP: mysql_ping - 自动重新连接问题

java - 处理匿名内部类中的新异常