从apnic获取电信网通铁通等ip的办法

APNIC 是管理亚太地区IP 地址分配的机构,它有着丰富准确的IP 地址分配库,同时这些信息也是对外公开的!一、在Linux 下获得一些电信运营商的IP 地址段的情况:1、编译安装软件shell>

APNIC 是管理亚太地区IP 地址分配的机构,它有着丰富准确的IP 地址分配库,同时这些信息也是对外公开的!

一、在Linux 下获得一些电信运营商的IP 地址段的情况:

1、编译安装软件

shell> wget

shell> cd whois-3.1

shell> ./configure

shell> make

2、开始获取IP 地址段

中国网通:

shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > /root/cncrange.txt

中国电信:

shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /root/chinanetrange.txt

中国铁通:

shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /root/crtcrange.txt

专门获取中国网通路由表

shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP-RR > /root/cncrr.txt

注:MAINT-CNCGROUP 为中国网通在apnic 的自治系统号

如果想得到具体的服务商比如山东网通的 就用MAINT-CNCGROUP-SD 具体查看http://www.apnic.net/index.html

其他查询选项 请查看 http://www.apnic.net/apnic-info/whois_search

3、过滤提取IP 段

以中国网通为例:

shell> cat cncip.txt | grep “inetnum” | sed ‘s/inetnum: //g’ 中国网通路由表

shell> cat /root/cnciprt.txt | grep route | sed ‘s/route://g’ | sed ‘s/. //g’

用下面的工具进行整理更方便LFHIPConverter subnettools102

如果做智能dns 的话 用下面的方法:

获取中国CNC 网通地址列表字段

./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP | grep “descr” | grep “Reverse” | awk -F “for” ‘{if ($2!=”") print $2}’| sort -n | awk ‘BEGIN{print “acl /”CNC/” ‘{‘”}{print $1″;”}END{print “‘}’;”}’ > /var/named/cnc_acl.conf

获取中国电信CTC 地址列表字段

,

./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET | grep “descr” | grep “Reverse” | awk -F “for” ‘{if ($2!=”") print $2}’| sort -n | awk ‘BEGIN{print “acl /”CTC/” ‘{‘”}{print $1″;”}END{print “‘}’;”}’ > /var/named/ctc_acl.conf

二、使用ripe-whois3获得电信,网通等运营商的ip 地址(以下方法没有测试,摘抄于网络)

Linux 中下载安装

cd /usr/ports/net/ripe-whois3

make install clean

rehash

查询:

中国网通: whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP

中国电信: whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET

中国铁通: whois3 -h whois.apnic.net -l -i mb MAINT-CNC-CRTC

三、自动获取任意国家地区ip 段(需要自己根据实际情况修改)

#!/bin/sh

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’`

case $NETNAME in

CHINANET|CNCGROUP)

echo $ip/$mask >> $NETNAME

,

;;

#如果你还要其他 ISP , 请在这边加上去即可, 透过 apnic whois , 你可以知道他的 NETNAME

OTHER_NETNAME_here)

;;

esac

done

标签: