APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一 些电信运营商的IP地址分配情况:
wget http://ftp.apnic/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
tar xzvf ripe-dbase-client-v3.tar.gz
cd whois-3.1
./configure
make
完 成上述编译安装工作后,我们开始获取IP地址段;

中国网通:
./whois3 -h whois.apnic -l -i mnt-by MAINT-CNCGROUP > /var/cnc
中 国电信:
./whois3 -h whois.apnic -l -i mnt-by MAINT-CHINANET > /var/chinanet
中国铁通:
./whois3 -h whois.apnic -l -i mb MAINT-CN-CRTC > /var/crtc
打 开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用 grep和awk简单过滤就可以了。


其中已经包括了全国电信级网通和铁通IP地址分配段

[广东ip段北京网通ip段,辽宁ip段,网通ip段北京ip段,电信 ip段,浙江ip段,湖南ip段,广东电信ip段,浙江电信ip段,中国ip段,山东网通ip段,山东ip段,广州ip段,福建ip段,上海电信ip段, 铁通ip段,广西ip段,
太原ip段,辽宁网通ip段,北京电信ip段,adsl ip段,广东省ip段,河北ip段,黑龙江网通ip段,上海ip段,山西ip段,四川ip段,江西ip段,
河北网通ip段,四川电信ip段,广州 电信ip段,广西电信ip段,广东电信adsl的ip段,服务器ip段,地区ip段,中国网通ip段,联通ip段,公网ip段,成都ip段,河南ip段, 厦门ip段,
大连ip段,贵州ip段,陕西ip段,广州adsl ip段,济南ip段,电信adsl ip段,福州的ip段,河南网通ip段,黑龙江ip段,山东省ip段,四川网通ip段]

国外IP段如[美国ip段,韩国ip段,,日本 ip段,最新美国ip段,日本的ip段,]请到http://ftp.apnic/ 上查询

 

#!/usr/bin/python

"""analyse chinese ip

   cnc,chinanet,Railcom
   """


import sys,math

_r_f=sys.argv[1]

def main():
 rfp=open(sys.argv[1],'r') 
 _now_line=1
 for line in rfp:
        if line.find('inetnum:') == 0:
                _now_line=_now_line+1
                wtof(line)
        elif line.find('route:') == 0:
                _now_line=_now_line+1
                print line.split(':')[1].split()[0]+str(";")


def mlen(cha):
        m=8
        while(m>0):
                if math.pow(2,m) <= cha:
                        return 8-m
                else:
                        m=m-1




def wtof(line):
        _start=line.split(':')[1].split()[0]
        _end=line.split(':')[1].split()[2]
        i,mask=0,0
        while(i<4):
                if _start.split('.')[i] == _end.split('.')[i]:
                        i=i+1
                else:
                        mask=i*8
                        _cha=int(_end.split('.')[i]) - int(_start.split('.')[i]) + 1
                        _vmlen=mlen(_cha)
                        mask=mask + _vmlen
                        i=i+1
                        print _start[0:]+"/"+str(mask)+str(";")
                        return(0)



if __name__ == "__main__":
        main()












#!/bin/bash
FILE=./ip_apnic
rm -f $FILE
wget http://ftp.apnic/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
        echo $ip:$cnt
        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>> cn
        NETNAME=`whois $ip@whois.apnic | sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*: \(.*\)/\1/g' | sed -e 's/-.*//g'`
        NETNAME=`echo $NETNAME | sed -e 's/cJ/ /g' | awk -F' ' '{ printf $1; }'`
       case $NETNAME in
       CNC)
               echo $ip/$mask >> CNCGROUP
       ;;
       CHINANET|CNCGROUP)
               echo $ip/$mask >> $NETNAME
       ;;
       CHINATELECOM)
               echo $ip/$mask >> CHINANET
       ;;
       *)
               echo $ip/$mask >> OTHER
       ;;
       esac
done

更多推荐

获取联通、电信、任意ISP ip段