Ping ICMP echo请求

时间:2012-01-08 18:27:34

标签: java icmp

是否有任何ping icmp(echo请求)的方法而不是使用isReachable? isReachable在端口7上建立TCP连接,当我使用wireshark时,我没有在Linux上看到任何ICMP数据包和Linux上的ICMP类型3(不是类型8和0)。如果有人有建议或解决方案,请告诉我。非常感谢!

2 个答案:

答案 0 :(得分:3)

ICMP往往需要管理权限,因此以普通用户身份运行的Java程序无法直接使用ICMP。

我想到的唯一解决方法是生成一个外部程序来运行操作系统提供的“ping”命令并​​解析其输出。

答案 1 :(得分:0)

我们使用Parallec库(http://www.parallec.io/)获得了好运。

在此之前,我们使用Runtime.exec()运行Linux提供的ping命令行实用程序。

如上所述,如果您以特权用户身份运行,isReachable将使用ICMP,否则它将使用TCP。