准确生成电信、联通、移动IP地址段
2012-04-12 19:06
513 查看
有时搞一些跨网段的工程和应用,需要尽量准确的知道电信、网通、铁通等电信运营商的IP地址段分配情况,可网上的资料不但很少,而且经常都是N个月前的过期资料……
APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:
代码:
shell> wget http://ftp.apnic.net/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 whois.apnic.net -l -i mb MAINT-CNCGROUP > /var/cnc
中国电信:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /var/chinanet
中国铁通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /var/crtc
中国移动:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CMCC > /var/CMCC
打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了。
代码:
#自动生成IP段脚本
#自动生成IP段脚本
vi apnic
贴入以下的内容是一个相当优秀的脚本)
#自动生成IP段脚本
vi apnic
贴入以下的内容是一个相当优秀的脚本)
#!/bin/sh
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 $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'`
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
chmod 744 apnic
./apnic
#注:红色部分为网络名可通过WHOIS查询该网段的网络名是什么,即查询是电信还是网通或移动或其它网络的标式,因此我们可以简单地修改这个脚本就可以得到中国其它运营商的网络IP段分配列表,
在当目前目录就会成以下三个文件
CHINANET CNCGROUP OTHER
#命令行获得IP地址段并生成DNS需要ACL.CONF文件方法,以获得移动IP段为例
/path/whois3 -h whois.apnic.net -l -i mb MAINT-CN-CMCC | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"MOBILE\" '{'"}{print $1";"}END{print "'}';"}' > /var/mobile_acl.conf
#红色部分很重要,这个值是代表哪个网络的如"MAINT-CN-CMCC"是移动,"MAINT-CHINANET"是电信,以此类推
APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:
代码:
shell> wget http://ftp.apnic.net/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 whois.apnic.net -l -i mb MAINT-CNCGROUP > /var/cnc
中国电信:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /var/chinanet
中国铁通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /var/crtc
中国移动:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CMCC > /var/CMCC
打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了。
代码:
#自动生成IP段脚本
#自动生成IP段脚本
vi apnic
贴入以下的内容是一个相当优秀的脚本)
#自动生成IP段脚本
vi apnic
贴入以下的内容是一个相当优秀的脚本)
#!/bin/sh
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 $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'`
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
chmod 744 apnic
./apnic
#注:红色部分为网络名可通过WHOIS查询该网段的网络名是什么,即查询是电信还是网通或移动或其它网络的标式,因此我们可以简单地修改这个脚本就可以得到中国其它运营商的网络IP段分配列表,
在当目前目录就会成以下三个文件
CHINANET CNCGROUP OTHER
#命令行获得IP地址段并生成DNS需要ACL.CONF文件方法,以获得移动IP段为例
/path/whois3 -h whois.apnic.net -l -i mb MAINT-CN-CMCC | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"MOBILE\" '{'"}{print $1";"}END{print "'}';"}' > /var/mobile_acl.conf
#红色部分很重要,这个值是代表哪个网络的如"MAINT-CN-CMCC"是移动,"MAINT-CHINANET"是电信,以此类推
相关文章推荐
- 移动,联通,电信手机都属于什么频段?
- 关于 移动 电信 联通 运营商数据抓取 通话记录 京东淘宝学信网数据抓取 失信报告,网贷黑名单,央行征信报告数据抓取
- 公告(1):3G拔号软件 最新完整版(集成电信移动联通)发布(2010-02-19)
- java 验证手机号码、电话号码(包括最新的电信、联通和移动号码)
- 区分联通、移动、电信 号码的策略
- 判断手机号码是否合法(移动,联通,电信)
- Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动
- 移动、联通、电信基站数据库
- Iphone被刷机后用电信卡提示未激活,移动联通卡可以正常使用
- android代码判断当前手机的手机号码是属于移动、联通、还是电信的
- 互联网金融:为什么贷前风控需要进行手机号码验证(联通、移动、电信)
- 移动联通电信获取基站数据库的方案
- 匹配移动,联通,电信手机号码正则表达式
- 移动联通电信wap和net接入点判断
- java-正则表达式判断移动联通电信手机号
- [Android Pro] 通过IMSI判断手机是移动、联通、电信
- 迄今为止发现的最全最广且免费的电信方面的论坛(移动联通电信广电),非常使用,推荐之!
- 正则表达式匹配移动、联通、电信号码
- 移动,联通,电信 sim 在android 应用中
- 电信、联通、移动、其它路由表 2011-06-19更新