免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2616 | 回复: 4
打印 上一主题 下一主题

要做智能dns,谁有全国各省或市的ip段啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-18 10:30 |只看该作者 |倒序浏览
急需全国各省或市的ip段包含到ISP 。
   
    不胜感激!

论坛徽章:
0
2 [报告]
发表于 2011-05-18 10:51 |只看该作者
本帖最后由 pangty 于 2011-05-18 11:13 编辑

可以参考如下代码。非原创,原帖:http://bbs.chinaunix.net/viewthread.php?tid=577598

遍历查询http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-lates的数据,根据whois信息里的netname分拣属于哪家ISP,以下脚本分拣电信的IP地址,其余也可以用此方法获得。

  1. #!/bin/sh

  2. PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin"
  3. export PATH

  4. T=`date +%Y%m%d%H%M`

  5. FILE=./ip_apnic
  6. rm -f $FILE

  7. wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
  8. grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
  9. do
  10.         mask=$(cat << EOF | bc | tail -1
  11.         pow=32;
  12.         define log2(x) {
  13.         if (x<=1) return (pow);
  14.                 pow--;
  15.                 return(log2(x/2));
  16.         }
  17.         log2($cnt)
  18. EOF)

  19.         output=`whois $ip@whois.apnic.net| sed -e '/./{H;$!d;}' -e 'x;/inetnum/!d'`
  20.         NETNAME=

  21.         rt=`echo $output|grep CHINANET|wc -l`
  22.         if [ $rt -gt 0 ]; then NETNAME="ctc-network-$T"; fi

  23.         rt=`echo $output|grep CHINATELECOM|wc -l`
  24.         if [ $rt -gt 0 ]; then NETNAME="ctc-network-$T"; fi

  25.         if [ -n "$NETNAME" ]; then
  26.                 echo $ip/$mask >> $NETNAME
  27.         fi
  28. done
  29. cp ctc-network-$T ctc-network
  30. rm -f $FILE
复制代码

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2011-05-18 10:52 |只看该作者
2楼的脚本不错

论坛徽章:
0
4 [报告]
发表于 2011-05-18 12:07 |只看该作者
#!/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 $ipcnt
        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

之前跑过这个脚本,生成的cnc ,里面 ip段很少

论坛徽章:
0
5 [报告]
发表于 2011-05-18 13:16 |只看该作者
本帖最后由 o0o0o1 于 2011-05-18 22:01 编辑
可以参考如下代码。非原创,原帖:

遍历查询的数据,根据whois信息里的netname分拣属于哪家ISP,以下脚本 ...
pangty 发表于 2011-05-18 10:51



   多谢,这种方法没到定位到省级
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP