中国运营商IP范围 路由表

附获取IP地址段shell:

#!/bin/sh
FILE=/home/ip_apnic
rm -f $FILE
rm -f CNC
rm -f OTHER
rm -f CHINANET
rm -f CRTC
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
    mask=$(cat << EOF | bc | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt)
EOF)
        echo $ip/$mask
        echo $ip/$mask>> cn.net
        NETNAME=`whois $ip | grep ^netname | sed -e 's/.*:      (.*)/1/g' | sed -e 's/-.*//g'`
echo $NETNAME;
        case $NETNAME in
        CNC)
                echo $ip/$mask >> CNC
        ;;
        CNCGROUP)
                echo $ip/$mask >> CNC
        ;;
        CHINANET)
                echo $ip/$mask >> CHINANET
        ;;
        CHINATELECOM)
                echo $ip/$mask >> CHINANET
        ;;
        CRTC)
                echo $ip/$mask >> CRTC
        ;;
        *)
                echo $ip/$mask >> OTHER
        ;;
        esac
done

手动方式如下:

wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz

tar xzvf ripe-dbase-client-v3.tar.gz
cd whois-3.1
./configure
make

完成上述编译安装工作后,我们开始获取IP地址段;

mkdir data

#中国网通:
./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > data/cnc

注意,下面这条是专门取网通路由表的,很重要.基本上用这个.

./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP-RR > data/cnc-rr

中国电信:

./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > data/chinanet

中国铁通:

./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > data/crtc

中国移动:

./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CMCC > data/cmcc

打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息.如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了.

过滤提取IP段

中国网通:

cat data/cnc-rr|grep route|sed ‘s/route://g’|sed ‘s/. //g’|sed ‘s/. //g’

所以可以得到:

219.158.0.0/20
58.16.0.0/16
221.13.96.0/19
221.7.64.0/18
58.17.128.0/17
60.11.0.0/16
60.14.0.0/15
….

发表评论