我想写一个Java程序,如果我给出目标IP地址,我将获得下一个集线器的信息以达到该IP。
那我怎么能实现这个目标呢?
感谢
巴皮
答案 0 :(得分:2)
Java程序???你有tracert
...
此外,您应该解释“hub”究竟是什么意思。
答案 1 :(得分:2)
我认为你的意思是下一跳而不是“中心”。
对于主机,可以从主机的路由表中检查下一个主机,使用traceroute可以将其实现为以下stackoverflow线程:
答案 2 :(得分:1)
IP网络中最常见的拓扑检测方法是将数据包(例如ICPM ECHO REQUEST
)发送到具有非常小的TTL值的目标地址。通常,您使用给定DLL到达的最后一个有效节点将响应ICMP错误消息,告知您数据包因其使用寿命而丢失,从而泄露所述设备的IP地址。
This question's回答表明Java Socket API只能在多播套接字上设置TTL。要解决此问题,您可以尝试使用第三方库(如RockSaw)处理原始IP套接字,因为JDK中没有原始IP支持(2002年bug on SUN's tracker请求!它很接近“不会修复”)。