自动获取联通电信最新IP段

如果需要做联通电信的智能DNS,必然需要知道这两个ISP分配到的IP段。我们可以通过apnic下载完整的IP段,再查询IP的whois,再根据各运营商的关键词(如联通的netname是unicom,电信是chinanet或telecom)筛选出IP段。
下面是实现这一功能的脚本:
在执行脚本之前先安装jwhois,bc

  1. yum install jwhois bc
  1. #!/bin/sh
  2. FILE=/root/apnic/ip_apnic
  3. rm -f $FILE
  4. wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
  5. grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
  6. do
  7. echo $ip:$cnt
  8.         mask=$(cat << EOF | bc | tail -1
  9. pow=32;
  10. define log2(x) {
  11. if (x<=1) return (pow);
  12. pow--;
  13. return(log2(x/2));
  14. }
  15. log2($cnt)
  16. EOF)
  17.        echo $ip/$mask>> cn.net
  18. if whois $ip@whois.apnic.net | grep -i ".*chinanet.*\|.*telecom.*">/dev/null;then
  19. echo $ip/$mask >> chinanet
  20. elif whois $ip@whois.apnic.net | grep -i ".*unicom.*">/dev/null;then
  21. echo $ip/$mask >> unicom
  22. else
  23. echo $ip/$mask >> others
  24. fi
  25. done

直接执行这脚本就会开始进行IP段筛选,这需要一定的时间,等完成后会在当前目录下生成三个文件unicom,chinanet,others。
下面提供联通电信ip段acl文件:
电信:CHINANET.acl
联通:CNC.acl
脚本参考:http://bbs.chinaunix.net/thread-577601-1-1.html

发布于:2019-11-24 05:12:13