download script: http://211.72.210.251/images/cn_isp.sh
#!/bin/sh
FILE=/root/study/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
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
再來,你只要看 CHINANET 或 CNCGROUP 這兩個檔案內容即可以知道其所有的 IP List 了
[root@log images]# cat CHINANET
58.32.0.0/13
58.40.0.0/15
58.42.0.0/16
58.44.0.0/14
58.48.0.0/13
58.208.0.0/12
59.32.0.0/13
59.40.0.0/15
59.42.0.0/16
59.44.0.0/14
59.48.0.0/16
...以下略
有了這個,就看你如何發揮了..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 還不太一致, 就懶得做了
Iva 回复于:2005-07-14 19:24:51
以下是我前几天从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
cnadl 回复于:2005-07-14 22:11:31
顶下下,对部分同志还是挺有用的。
剑心通明 回复于:2005-07-15 08:33:47
引用:原帖由 "abel" 发表:
有了這個,就看你如何發揮了..iptable/iproute/dns/squid...firewall 很多東西都會有需要的
我放了一份今天做出來的 List 在下面,日後永不更新,所以你要最新的就得
自己做了
http://211.72.210.251/images/CHI..........
怎么我执行的提示有错误啊?
abel 回复于:2005-07-15 09:49:52
引用:原帖由 "剑心通明" 发表:
怎么我执行的提示有错误啊?
什麼樣的環境下 ?
什麼錯誤?
abel 回复于:2005-07-15 09:57:57
引用:原帖由 "Iva"] 发表:
CERNET 的列表您的有缺 (我也不知道我用程式跑出來有沒有缺,但 APNIC 給的基本上不會錯)
您可看看
CERNET 上會有更新列表,但更新前有什麼 CERNET 並沒有公布
http://www.edu.cn/20050630/3142190.shtml
Iva 回复于:2005-07-15 10:00:48
引用:原帖由 "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足够了……:-)
abel 回复于:2005-07-15 10:20:29
引用:原帖由 "Iva" 发表:
你这段代码有两个问题:
一、EOF后面那个“)”一定要换行。
二、通过whois查询ISP部分有问题,中国电信有部分网段注册的是"CHINATELECOM”,比如:
inetnum: 222.222.0.0 - 222.223.255.255
netname: ..........
EOF 不見得一定要換行,因為後面巳經 end of file 了
至於 CHINATELECOM 與 CHINANET 有什麼差別,我並不清楚(我不住在CN)
如果是一樣的,那在 case 那段補上就好
case $NETNAME in
CHINANET|CNCGROUP)
echo $ip/$mask >;>; $NETNAME
;;
#如果你還要其他 ISP , 請在這邊加上去即可,透過 apnic whois , 你可以知道他的 NETNAME
OTHER_NETNAME_here)
;;
#如果兩個是一樣的
CHINATELECOM)
echo $ip/$mask >;>; CHINANET
esac
至於只用 grep 怎麼做,您倒可以試看看怎麼做,我只是提供我的 idea ,並開啟 在 apnic 一般人不知道的 IP 位址發放資訊而以,shell 的做法本來就有很多種可能
Iva 回复于:2005-07-15 11:29:31
反正我在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
再执行。
hsboy 回复于:2005-10-10 02:26:39
abel兄,今天发现您提供的脚本似乎有一点问题,举例来说:
从apnic下载的delegated-apnic-latest中有如下一行:
apnic|CN|ipv4|210.32.0.0|262144|19960904|allocated
按我的理解这一行表示的是210.32.0.0~210.35.255.255的分配。实际上它确实被分配给了中国教育与科研计算机网(CNNIC)。
在您的脚本中会使用:
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的分配)。
abel 回复于:2005-10-12 14:52:56
引用:原帖由 "hsboy" 发表:
这一段确实是分配给浙江大学的,查询结果没有错误,但是得到的网络名却是“ZJMU"而不是期望中的“CERNET”,这应该与您的本意不一致,请问这是否是一个bug?又该如何解决?谢谢。
类似情况还有
apnic|CN|ipv4|2..........
有些問題你可以在這裏找到
http://bbs.chinaunix.net/forum/viewtopic.php?t=577601&highlight=abel
本文主要針對 cnc/ct , 像 cernet 這種東西有講過,它的 netname 太亂,沒有規則可尋
至於 SHHY 屬 CNC 或原來的 SHHY 這我個人就不知道了,
我爱臭豆腐 回复于:2005-10-12 16:44:28
引用:原帖由 "abel" 发表:
有些問題你可以在這裏找到
http://bbs.chinaunix.net/forum/viewtopic.php?t=577601&highlight=abel
本文主要針對 cnc/ct , 像 cernet 這種東西有講過,它的 netname 太亂,沒有規則可尋
至於 SHHY 屬 CNC 或原..........
这个确实是对一些人有用.楼主辛苦了. :em02:
abel 回复于:2005-10-12 17:08:49
引用:原帖由 "我爱臭豆腐" 发表:
这个确实是对一些人有用.楼主辛苦了. :em02:
臭豆腐兄過獎了,在台灣是沒有這方面這種需求,
ISP 間的互連互通雖難免存在瓶頸,但總體而言,速度上都在可以接受的範圍內
對於中國大陸特有之現象實非 Internet 之福,不知增加了多少企業的成本
我爱臭豆腐 回复于:2005-10-12 17:30:09
引用:原帖由 "abel" 发表:
臭豆腐兄過獎了,在台灣是沒有這方面這種需求,
ISP 間的互連互通雖難免存在瓶頸,但總體而言,速度上都在可以接受的範圍內
對於中國大陸特有之現象實非 Internet 之福,不知增加了多少企業的成本
这样的事情不光光是在大陆实际上在有一些地方也存在这样的问题.成本确实是高了.但是也成全了一些销售和厂家了.当然也锻炼了咱们的技术啊.不然咱们怎么能想出这样的方法啊.你说是不是啊 :em17:
希望能够这样的日子早日结束.
wxw2004gl 回复于:2006-03-21 09:39:20
#!/bin/sh
#filename cn_isp.sh;auto get the IP of CHINANET and CNC;
#rm delegated-apnic-latest
#fetch http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
grep 'CN|ipv4' delegated-apnic-latest | cut -f 4,5 -d '|' | tr '|' ' ' >> cnnet
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 -A $ip | grep -e ^netname -e ^descr | cut -f 2 -d ':' | sed 's/ *//'`
echo '................Search for '$ip/$mask' .........................'
if echo $resultext | grep -i -e 'chinanet' -e 'chinatel'
then echo $ip/$mask >> IP_CHINANET
fi
if echo $resultext | grep -i -e 'unicom'
then echo $ip/$mask >> IP_UNICOM
fi
if echo $resultext | grep -i -e 'cncgroup'
then echo $ip/$mask >> IP_CNC
fi
echo '----------------------------------------------'
echo ''
done
cn_isp.rar
feelone 回复于:2006-06-03 11:51:04
谢谢abel.
从本贴中学到很多东西!
strongxxxx 回复于:2006-06-06 16:01:33
好程序,收藏,谢谢~
|