如果需要做联通电信的智能DNS,必然需要知道这两个ISP分配到的IP段。我们可以通过apnic下载完整的IP段,再查询IP的whois,再根据各运营商的关键词(如联通的netname是unicom,电信是chinanet或telecom)筛选出IP段。
下面是实现这一功能的脚本:
在执行脚本之前先安装jwhois,bc
yum install jwhois bc #!/bin/sh FILE=/root/apnic/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 if whois $ip@whois.apnic.net | grep -i ".*chinanet.*\|.*telecom.*">/dev/null;then echo $ip/$mask >> chinanet elif whois $ip@whois.apnic.net | grep -i ".*unicom.*">/dev/null;then echo $ip/$mask >> unicom else echo $ip/$mask >> others fi done
直接执行这脚本就会开始进行IP段筛选,这需要一定的时间,等完成后会在当前目录下生成三个文件unicom,chinanet,others。
转载自:https://www.centos.bz/2012/02/automatic-get-unicom-chinanet-new-ip-ranges/