自动产生电信网通ip列表

Shell 檔如下, wget 所取得的檔案,若您有心仔細看一下即可知內容
( 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 [email protected] | 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 了,若需要其他 ISP , 上面代碼以給您足夠空間自己發揮

[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 還不太一致, 就懶得做了

你可能感兴趣的:(.net,PHP,教育,电信,bbs)