【发布时间】:2010-10-17 16:06:13
【问题描述】:
我想编写一个 Java 程序,如果我提供目标 IP 地址,我将获得下一个集线器的信息以到达该 IP。
那么我该如何实现呢?
谢谢
巴比
【问题讨论】:
我想编写一个 Java 程序,如果我提供目标 IP 地址,我将获得下一个集线器的信息以到达该 IP。
那么我该如何实现呢?
谢谢
巴比
【问题讨论】:
Java 程序???你有tracert...
此外,您应该解释一下“集线器”的确切含义。
【讨论】:
IP 网络中最常见的拓扑检测方法是将数据包(例如ICPM ECHO REQUEST)发送到具有非常小的TTL 值的目标地址。通常,您使用给定 DLL 到达的最后一个有效节点随后会以 ICMP 错误消息进行响应,告诉您该数据包由于其生命周期结束而丢失,从而揭示所述设备的 IP 地址。
This question's 回答建议 Java Socket API 只能在多播套接字上设置 TTL。要解决这个问题,您可以尝试使用原始 IP 套接字,使用像 RockSaw 这样的第三方库,因为 JDK 中没有原始 IP 支持(2002 年的 bug on SUN's tracker(!)要求它关闭“不会修复”)。
【讨论】:
我认为您的意思是下一跳而不是“中心”。
对于主机,可以从主机的路由表中检查下一个主机,使用traceroute可以实现如下stackoverflow线程:
【讨论】: