自己动手,获取isp路由表

俗话说,最遥远的距离是你是电信我是网通。对于这个中国特色,一般企业都采用双线,甚至多线接入。双线接入后最重要的就是策略路由了,这个可不是PCC,NTH之类的负载均衡。实现策略路由最重要的一步就是获得路由表。很多文章只说如何做策略,但对ISP路由表的获得往往一带而过,语焉不详。目前市面上有很多所谓多WAN口的路由器,其中的ISP路由表是实现策略路由的关键,但往往很难直接拿到。在很喜欢自己动手的51cto看来,不科学啊。如何才能获得ISP的路由表呢,本贴专注于此。
市面上有ISP路由表的设备、软件很多,本贴仅就利用海蜘蛛软件获取ISP路由表谈下我的做法。
海蜘蛛属于做的比较好的软路由,特别是isp路由表更新还是比较及时的,这给多ISP多线路的用户带来的便利,可以做到有效的分离流量。但他不是免费的,而且价格很高。能不能利用海蜘蛛的ISP路由表,在自己的路由器上使用多线分离流量呢?随即发现,想直接拿到,破解是很困难的。难道没有办法了吗?有!
首先,我们可以取得全球的路由表,这个表是公开免费的,可以从http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest下载apnic最新的地址表,这个表是准确并全面的。这个表中”CN”标记为中国名义的路由。
其次,我们利用“黑盒测试”原理,把取得的路由表交海蜘蛛验证,就可以知道这条路由是那家ISP的。
动手。
1、下载并安装海蜘蛛软件,随便那种都行,然后更新到最新的策略路由表rtable。
2、虚拟wan口,模拟多个ISP线路,使用策略路由,不设置默认路由。
3、把从apnic获得的路由信息,分别下挂的电脑上tracert出去,就会得到经过海蜘蛛验证的各ISP路由信息了。
然后,就可以随便用到我们自己要用的地方了。
这个方法,不用破解,路由信息自己生成,对于多ISP接入很是方便。大概1个小时就能得到新表了。
顺便说一句,有了apnic的表,配合whosip,可以构造自己的IP归属地址库。
关于海蜘蛛的安装设置,可以参考官网的文档。筛ISP路由表,下面贴出一个简单的批处理。

复制内容到剪贴板

代码:

@echo off
goto preproccess
:begin
@Rem 找出中国的ip地址段
find "apnic|CN|ipv4" apnic-ip.txt >> tmpcn.txt
@echo 作为测试,请编辑tmpcn.txt,留一小部分就可以了
pause
@Rem 剔除没用的内容并识别出口并计算出掩码(CIDR格式)
for /f "skip=2 tokens=4,5 delims=|" %%a in (tmpcn.txt) do (
for /f "tokens=8" %%i in ('tracert -d -h 2 %%a ^|  findstr /B /C:"  2"') do (
echo 处理完-- %%a ---
for /f "tokens=2 delims=:" %%k in ('findstr /C:"%%b" chang.txt') do echo %%a%%k:%%i >>a.txt
)
)
@Rem 导出路由表
for /f "tokens=2 delims=:" %%i in (a.txt) do echo %%i>>%%i.$$$
for /f "tokens=1,2,3,4 delims=. " %%a in ('dir /b /od *.$$$') do (
for /f "tokens=1 delims=:" %%k in ('findstr /C:"%%a.%%b.%%c.%%d" a.txt') do echo 替%%k换>>%%a%%b%%c%%d.tx$
)
goto end
:preproccess
del *.txt *.$$$ /q
@Rem 下载apnic最新的地址表
@rem http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
@echo open ftp.apnic.net >>ftp.txt
@echo get apnic/stats/apnic/delegated-apnic-latest >> ftp.txt
@echo quit >> ftp.txt
ftp -A -s:ftp.txt
ren delegated-apnic-latest apnic-ip.txt
@Rem 生成掩码对照表
@echo 255.255.255.254:/31:2 >>chang.txt
@echo 255.255.255.252:/30:4 >>chang.txt
@echo 255.255.255.248:/29:8 >>chang.txt
@echo 255.255.255.240:/28:16 >>chang.txt
@echo 255.255.255.224:/27:32 >>chang.txt
@echo 255.255.255.192:/26:64 >>chang.txt
@echo 255.255.255.128:/25:128 >>chang.txt
@echo 255.255.255.0:/24:256 >>chang.txt
@echo 255.255.254.0:/23:512 >>chang.txt
@echo 255.255.252.0:/22:1024 >>chang.txt
@echo 255.255.248.0:/21:2048 >>chang.txt
@echo 255.255.240.0:/20:4096 >>chang.txt
@echo 255.255.224.0:/19:8192 >>chang.txt
@echo 255.255.192.0:/18:16384 >>chang.txt
@echo 255.255.128.0:/17:32768 >>chang.txt
@echo 255.255.0.0:/16:65536 >>chang.txt
@echo 255.254.0.0:/15:131072 >>chang.txt
@echo 255.252.0.0:/14:262144 >>chang.txt
@echo 255.248.0.0:/13:524288 >>chang.txt
@echo 255.240.0.0:/12:1048576 >>chang.txt
@echo 255.224.0.0:/11:2097152 >>chang.txt
@echo 255.192.0.0:/10:4194304 >>chang.txt
@echo 255.128.0.0:/9:8388608 >>chang.txt
@echo 255.0.0.0:/8:16777216 >>chang.txt
@echo 254.0.0.0:/7:33554432 >>chang.txt
@echo 252.0.0.0:/6:67108864 >>chang.txt
@echo 248.0.0.0:/5:134217728 >>chang.txt
@echo 240.0.0.0:/4:268435456 >>chang.txt
@echo 224.0.0.0:/3:536870912 >>chang.txt
@echo 192.0.0.0:/2:1073741824 >>chang.txt
@echo 128.0.0.0:/1:2147483648 >>chang.txt
goto begin
:end
del *.txt *.$$$ /q
@echo on