转自 /read.php/140.htm以及 /read.php/411.htm
APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:
shell> wget /apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
shell> tar xzvf ripe-dbase-client-v3.tar.gz
shell> cd whois-3.1
shell> ./configure
shell> make
完成上述编译安装工作后,我们开始获取IP地址段;
中国网通:
shell> ./whois3 -h -l -i mb MAINT-CNCGROUP > /var/cnc
中国电信:
shell> ./whois3 -h -l -i mb MAINT-CHINANET > /var/chinanet
中国铁通:
shell> ./whois3 -h -l -i mb MAINT-CN-CRTC > /var/crtc
打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了。
----------------
/read.php/411.htm
自动生成电信(CHINANET)/网通(CNCGROUP) IP段 列表<script src="/google.js" type="text/javascript"></script> <script type="text/javascript"> </script> <script src="/pagead/show_ads.js" type="text/javascript"> </script> name="google_ads_frame" marginwidth="0" marginheight="0" src="/pagead/ads?client=ca-pub-8533638549855771&dt=1205480071428&lmt=1205480072&format=200x200_as&output=html&correlator=1205480071418&channel=6548811582&url=http%3A%2F%%2Fread.php%2F411.htm&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=66B5FF&ad_type=text_image&ref=http%3A%2F%%2Fgo.php%2Fcategory%2F0%2F&frm=0&ui=rc%3A6&cc=100&ga_vid=188096612.1205478806&ga_sid=1205478806&ga_hid=549090430&ga_fc=true&flash=9.0.115.0&u_h=768&u_w=1024&u_ah=715&u_aw=1024&u_cd=32&u_tz=480&u_his=5&u_java=true" frameborder="0" width="200" scrolling="no" height="200" allowtransparency="allowtransparency"> Shell 檔如下, wget 所取得的檔案,若您有心仔細看一下即可知內容
( http://211.72.210.251/images/cn_isp.sh )
#!/bin/sh
FILE=/root/study/apnic/ip_apnic
rm -f $FILE
wget /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>;>;
NETNAME=`whois $ip@ | 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
运行程序后会生成 CHINANETCNCGROUP 两个文件
再來,你只要看 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 很多東西都會有需要的