traceroute 路由追踪

       一个数据包从你的电脑出发,然后达到目的地,比如google。中间到底经历了什么?我能不能看到它路过的路由器?traceroute可以做到。

       traceroute原理简单说来,就是利用TTL(time to live,设置数据包最大生存时间,用来防止数据包在路由器间循环)。主机先给数据包设置一个TTL,然后这个数据包每经过一个路由器,路由器就把TTL减一。直到递减到零,这时,路由器会发送回来一个ICMP Time Exceeded,这个时候主机接收到之后,就知道相应的路由器IP了。

       traceroute是linux自带的。详细用法见man。下面是最实用的命令。类似的工具还有tracepath,但是感觉traceroute更好。

       只有这个功能,感觉不太好用,如果能知道ip的真实世界的地址就好了。比如中国上海这样的。正好网上出了个开源的GeoIP(IP与地理地址转换)。非常感谢作者。

      然后胶水语言python就上台了。我就直接贴代码了,很好理解。注意这是不能直接运行的,需要下载相应的GeoIP,然后写个geoip来解析IP与地理地址。

 效果图:

cpu30

链接: