免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10846 | 回复: 17

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-07-14 18:49 |显示全部楼层
download script: http://211.72.210.251/images/cn_isp.sh

  1. #!/bin/sh
  2. FILE=/root/study/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
  6. cnt
  7. do
  8.         echo $ip:$cnt
  9.         mask=$(cat << EOF | bc | tail -1
  10. pow=32;
  11. define log2(x) {
  12. if (x<=1) return (pow);
  13. pow--;
  14. return(log2(x/2));
  15. }
  16. log2($cnt)
  17. EOF)
  18.         echo $ip/$mask>;>; cn.net
  19.         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'`
  20.         case $NETNAME in
  21.         CHINANET|CNCGROUP)
  22.                 echo $ip/$mask >;>; $NETNAME
  23.         ;;
  24. #如果你還要其他 ISP , 請在這邊加上去即可,透過 apnic whois , 你可以知道他的 NETNAME
  25.         OTHER_NETNAME_here)
  26.         ;;
  27.         esac
  28. done
复制代码

再來,你只要看 CHINANET 或 CNCGROUP 這兩個檔案內容即可以知道其所有的 IP List 了

  1. [root@log images]# cat CHINANET
  2. 58.32.0.0/13
  3. 58.40.0.0/15
  4. 58.42.0.0/16
  5. 58.44.0.0/14
  6. 58.48.0.0/13
  7. 58.208.0.0/12
  8. 59.32.0.0/13
  9. 59.40.0.0/15
  10. 59.42.0.0/16
  11. 59.44.0.0/14
  12. 59.48.0.0/16
  13. ...以下略
复制代码


有了這個,就看你如何發揮了..iptable/iproute/dns/squid...firewall 很多東西都會有需要的

我放了一份今天做出來的 List 在下面,日後永不更新,所以你要最新的就得
自己做了
http://211.72.210.251/images/CHINANET
http://211.72.210.251/images/CNCGROUP

教育網(CERNET) ? 我不知道,他的 IP Source 很亂,由 ARIN 的也有 APNIC
的,而且 NETNAME 還不太一致, 就懶得做了

论坛徽章:
0
发表于 2005-07-14 19:24 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

以下是我前几天从SMTH搞到的Cernet的地址分配表:
58.192.0.0/15
58.194.0.0/15
58.196.0.0/15
58.200.0.0/13
59.64.0.0/14
59.68.0.0/14
59.72.0.0/15
59.74.0.0/15
59.76.0.0/16
59.77.0.0/16
59.78.0.0/15
162.105.0.0/16
166.111.0.0/16
202.112.0.0/18
202.112.128.0/17
202.112.64.0/18
202.113.0.0/16
202.114.0.0/16
202.115.0.0/16
202.116.0.0/16
202.117.0.0/16
202.118.0.0/16
202.119.0.0/16
202.120.0.0/15
202.127.216.0/21
202.127.224.0/19
202.192.0.0/15
202.194.0.0/15
202.196.0.0/15
202.198.0.0/15
202.200.0.0/15
202.202.0.0/15
202.204.0.0/14
202.38.140.0/23
202.38.184.0/21
202.38.192.0/18
202.38.64.0/19
202.38.96.0/19
202.4.128.0/19
210.25.0.0/17
210.25.128.0/18
210.26.0.0/15
210.28.0.0/15
210.30.0.0/16
210.31.0.0/16
210.32.0.0/14
210.36.0.0/14
210.40.0.0/15
210.42.0.0/15
210.44.0.0/15
210.46.0.0/15
211.64.0.0/15
211.66.0.0/16
211.67.0.0/16
211.68.0.0/16
211.69.0.0/16
211.70.0.0/16
211.71.0.0/16
211.80.0.0/16
211.81.0.0/16
211.82.0.0/16
211.83.0.0/16
211.84.0.0/15
211.86.0.0/15
218.192.0.0/16
218.193.0.0/16
218.194.0.0/16
218.195.0.0/16
218.196.0.0/14
219.216.0.0/15
219.218.0.0/15
219.220.0.0/16
219.221.0.0/16
219.222.0.0/15
219.224.0.0/17
219.224.128.0/18
219.224.192.0/18
219.225.0.0/16
219.226.0.0/16
219.227.0.0/16
219.228.0.0/15
219.230.0.0/15
219.242.0.0/16
219.243.0.0/17
219.243.128.0/18
219.243.192.0/18
219.244.0.0/14
222.16.0.0/15
222.18.0.0/15
222.192.0.0/14
222.196.0.0/15
222.198.0.0/16
222.199.0.0/16
222.20.0.0/15
222.200.0.0/14
222.204.0.0/15
222.206.0.0/15
222.22.0.0/16
222.23.0.0/16
222.24.0.0/15
222.26.0.0/15
222.28.0.0/14

论坛徽章:
0
发表于 2005-07-14 22:11 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

顶下下,对部分同志还是挺有用的。

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
发表于 2005-07-15 08:33 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

原帖由 "abel" 发表:

有了這個,就看你如何發揮了..iptable/iproute/dns/squid...firewall 很多東西都會有需要的

我放了一份今天做出來的 List 在下面,日後永不更新,所以你要最新的就得
自己做了
http://211.72.210.251/images/CHI..........

怎么我执行的提示有错误啊?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-07-15 09:49 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

原帖由 "剑心通明" 发表:

怎么我执行的提示有错误啊?

什麼樣的環境下 ?
什麼錯誤?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-07-15 09:57 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

[quote]原帖由 "Iva"][/quote 发表:

CERNET 的列表您的有缺 (我也不知道我用程式跑出來有沒有缺,但 APNIC 給的基本上不會錯)
您可看看
CERNET 上會有更新列表,但更新前有什麼 CERNET 並沒有公布
http://www.edu.cn/20050630/3142190.shtml

论坛徽章:
0
发表于 2005-07-15 10:00 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

原帖由 "abel" 发表:

有了這個,就看你如何發揮了..iptable/iproute/dns/squid...firewall 很多東西都會有需要的

我放了一份今天做出來的 List 在下面,日後永不更新,所以你要最新的就得
自己做了
http://211.72.210.251/images/CHI..........


你这段代码有两个问题:
一、EOF后面那个“)”一定要换行。
二、通过whois查询ISP部分有问题,中国电信有部分网段注册的是"CHINATELECOM”,比如:
inetnum:      222.222.0.0 - 222.223.255.255
netname:      CHINATELECOM-HE
descr:        CHINANET hebei province network
descr:        China Telecom
还有可能有其它不规范的netname,我觉得这应该把所有netname和descr字段做为查询目标,你那么多sed搞得太复杂了,grep足够了……

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-07-15 10:20 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

原帖由 "Iva" 发表:


你这段代码有两个问题:
一、EOF后面那个“)”一定要换行。
二、通过whois查询ISP部分有问题,中国电信有部分网段注册的是"CHINATELECOM”,比如:
inetnum:      222.222.0.0 - 222.223.255.255
netname:   ..........

EOF 不見得一定要換行,因為後面巳經 end of file 了

至於 CHINATELECOM 與 CHINANET 有什麼差別,我並不清楚(我不住在CN)
如果是一樣的,那在 case 那段補上就好

  1. case $NETNAME in
  2.        CHINANET|CNCGROUP)
  3.                echo $ip/$mask >;>; $NETNAME
  4.        ;;
  5. #如果你還要其他 ISP , 請在這邊加上去即可,透過 apnic whois , 你可以知道他的 NETNAME
  6.        OTHER_NETNAME_here)
  7.        ;;
  8. #如果兩個是一樣的
  9.        CHINATELECOM)
  10.                 echo $ip/$mask >;>; CHINANET
  11.        esac
复制代码


至於只用 grep 怎麼做,您倒可以試看看怎麼做,我只是提供我的 idea ,並開啟 在 apnic 一般人不知道的 IP 位址發放資訊而以,shell 的做法本來就有很多種可能

论坛徽章:
0
发表于 2005-07-15 11:29 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

反正我在freebsd下,EOF后面的)不换行就铁定出错……

我的修正版本:
#!/bin/sh

cat cnnet | while read ip cnt
do

mask=$(bc <<END | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt);
END
)

resultext=`whois -p $ip | grep -e ^netname -e ^descr | cut -f 2 -d ':' | sed 's/ *//'`
echo '----------------------------------------------'
echo $resultext
echo '..............................................'

if echo $resultext | grep -i -e 'chinanet' -e 'chinatel'
  then echo $ip/$mask >;>; CHINANET
fi

if echo $resultext | grep -i -e 'unicom'
  then echo $ip/$mask >;>; UNICOM
fi

if echo $resultext | grep -i -e 'cncgroup'
  then echo $ip/$mask >;>; CNC
fi

echo '----------------------------------------------'
echo ''

done


这个脚本应该手工抓那个apnic的文件,然后:
grep 'CN|ipv4' delegated-apnic-latest | cut -f 4,5 -d '|' | tr '|' ' ' >; cnnet
再执行。

论坛徽章:
0
发表于 2005-10-10 02:26 |显示全部楼层

[號外] 自動產生 CHINANET/CNCGROUP 最新IPv4地址列表

abel兄,今天发现您提供的脚本似乎有一点问题,举例来说:
从apnic下载的delegated-apnic-latest中有如下一行:
  1. apnic|CN|ipv4|210.32.0.0|262144|19960904|allocated
复制代码

按我的理解这一行表示的是210.32.0.0~210.35.255.255的分配。实际上它确实被分配给了中国教育与科研计算机网(CNNIC)。
在您的脚本中会使用:
  1. whois -h 202.12.29.13 210.32.0.0 | sed -e '/./{H;$\!d;}' -e 'x;/netnum/\!d'
复制代码

这一命令来查询whois以得到它所属ISP,但是实际上whois查询出来的结果却是一个更为细化后的结果:
inetnum:      210.32.0.0 - 210.32.15.255
netname:      ZJMU-CN
descr:        ~{Uc=-R=?F4sQ'~}
descr:        Zhejiang University (merged former Zhejiang Medical University)
descr:        Hangzhou, Zhejiang 310027, China
country:      CN
admin-c:      HY465-AP
tech-c:       HY465-AP
tech-c:       CER-AP
remarks:      origin AS4538
changed:      hm-changed@net.edu.cn 19961128
changed:      hostmaster@net.edu.cn 20040716
mnt-by:       MAINT-CERNET-AP
status:       ASSIGNED NON-PORTABLE
source:       APNIC

这一段确实是分配给浙江大学的,查询结果没有错误,但是得到的网络名却是“ZJMU"而不是期望中的“CERNET”,这应该与您的本意不一致,请问这是否是一个bug?又该如何解决?谢谢。

类似情况还有
apnic|CN|ipv4|210.78.0.0|8192|19980811|allocated
表示210.78.0.0~210.78.31.255,本来应该属于CNCGROUP,但是在脚本中却查出为SHHY(即210.78.0.0~210.78.0.255的分配)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP