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

4 篇文章 0 订阅
APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一 些电信运营商的IP地址分配情况:
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地址段;

中国网通:
./whois3 -h whois.apnic.net -l -i mnt-by MAINT-CNCGROUP > /var/cnc

中 国电信:
./whois3 -h whois.apnic.net -l -i mnt-by MAINT-CHINANET > /var/chinanet

中国铁通:
./whois3 -h whois.apnic.net -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.net/ 上查询

 

#!/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.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
        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.net
        NETNAME=`whois $ip@whois.apnic.net | 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值