github上有人释出了一个python脚本mongol.py,可以定位中国防火长城的物理位置和数量。

mongol.py以密歇根大学计算机系的Xueyang XuZ. Morley Mao在2011年发表的一篇论文为理论依据,发送“tibetalk“这个关键字来刺激防火墙,然后跟踪TCP报头的路由,找出RST数据包返回前最后一跳的位置,从而定位防火长城的物理位置。

这是目前得到的防火长城分布图。

定位GFW的python脚本


How To Locate GFW Devices' IP Address,如何找到GFW设备的IP地址

https://github.com/mothran/mongol

这是国外的一个脚本,主要是通过scapy发送特定包,通过ttl来判断rst包的发送来源。相信这一方法 @xsser 会很熟悉。

具体原理可以参考这个PDF,或者去搜索下80sec某篇被河蟹的paper。

这是目前得到的gfw ip分布图:

定位GFW的python脚本,How To Locate GFW Devices' IP Address,如何找到GFW设备的IP地址

实际上这个方式查出来的也不过是阻断点的位置。具体后面如何进行的,谁知道,但是起码阻断是通过3层做的,所以能够定位IP的。