4

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

4

2 回答 2

3

ICMP 往往需要管理权限,因此作为普通用户运行的 Java 程序不能直接使用 ICMP。

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

于 2012-01-08T18:32:01.493 回答
0

我们在使用 Parallec 库 ( http://www.parallec.io/ ) 时运气不错。

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

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

于 2017-03-01T19:13:48.073 回答