0

InetAddress.isReachable(NetworkInterface , int ttl, int timeOut) 如果从 ttl 的跳数可以到达特定地址,则返回 true,否则返回 false。

我还可以知道它从哪个 IP 地址获得成功或失败消息吗?我的意思是我可以拥有 isReachable 从中获得成功或失败响应的中间跃点的 IP。

4

1 回答 1

0

手册说;

如果可以获得特权,典型的实现将使用 ICMP ECHO REQUEST,否则它将尝试在目标主机的端口 7 (Echo) 上建立 TCP 连接。

基本上,没有。由于设计了 TCP/IP,因此无法保证您通过使用正常的 ICMP/TCP 传输获得逐跳可达性信息,因此没有可靠的方法来获得该信息。

“traceroute”命令可以通过在它发送的数据包上设置 TTL,逐跳地获取半可靠信息,但 isReachable 是一种“快速而肮脏”的检查可达性的方法,不使用这种技术。

于 2013-07-19T17:03:50.160 回答