Chinaunix
标题:
自动产生电信_网通_教育网_铁通_移动_联通ip地址范围(原创)
[打印本页]
作者:
jackbillow
时间:
2008-05-08 02:59
标题:
自动产生电信_网通_教育网_铁通_移动_联通ip地址范围(原创)
近来工作中,遇到为了根据来访的ip,区分出其所使用的网络,把对应的用户数据放到对应的机房。感觉网上写的都不是那么完美:)就自己写了一个脚本。
#!/bin/sh
# this scrip write by jackbillow at 2008-05-08.
# discriminate per isp from apnic.
# download ip info from apnic website.
apnic_ip_info="/home/jackbillow/apnic_ip_info"
# get all ip list values from apnic.
apnic_all_ip="/home/jackbillow/apnic_all_ip"
# define save ip result directory.
save_dir="/home/jackbillow"
# delete old exist file.
if [ -e "$apnic_ip_info" ];then
rm -f $apnic_ip_info
fi
if [ -e "$apnic_all_ip" ];then
rm -f $apnic_all_ip
fi
if [ -e $save_dir/CNC_GROUP ];then
rm -f $save_dir/CNC_GROUP
fi
if [ -e $save_dir/CHINATELECOM_GROUP ];then
rm -f $save_dir/CHINATELECOM_GROUP
fi
if [ -e $save_dir/CERNET_GROUP ];then
rm -f $save_dir/CERNET_GROUP
fi
if [ -e $save_dir/CRTC_GROUP ];then
rm -f $save_dir/CRTC_GROUP
fi
if [ -e $save_dir/CHINAMOBILE_GROUP ];then
rm -f $save_dir/CHINAMOBILE_GROUP
fi
if [ -e $save_dir/CHINAUNICOM_GROUP ];then
rm -f $save_dir/CHINAUNICOM_GROUP
fi
if [ -e $save_dir/OTHERNET_GROUP ];then
rm -f $save_dir/OTHERNET_GROUP
fi
wget -q
http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
-O $apnic_ip_info
grep "apnic|CN|ipv4|" "$apnic_ip_info" | awk -F'|' '{print $4}' > "$apnic_all_ip"
while read line
do
isp_info=`whois $line | grep -E "(mnt-|netname)" | awk '{print $2}' | xargs`
# CNC
into_cnc=`echo $isp_info | sed -n '/CNC/p'`
# CHINATELECOM
into_chinatelecom=`echo $isp_info | sed -n '/CHINANET/p'`
# CERNET
into_cernet=`echo $isp_info | sed -n '/CERNET/p'`
# CRTC
into_crtc=`echo $isp_info | sed -n '/CRTC/p'`
# CHINAMOBILE
into_cmcc=`echo $isp_info | sed -n '/CMCC/p'`
# CHINAUNICOM
into_unicom=`echo $isp_info | sed -n '/UNICOM/p'`
if [ "${into_cnc}" != "" ];then
echo "$line CNC_GROUP" >> ${save_dir}/CNC_GROUP
elif [ "${into_chinatelecom}" != "" ];then
echo "$line CHINATELECOM_GROUP" >> ${save_dir}/CHINATELECOM_GROUP
elif [ "${into_cernet}" != "" ];then
echo "$line CERNET_GROUP" >> ${save_dir}/CERNET_GROUP
elif [ "${into_crtc}" != "" ];then
echo "$line CRTC_GROUP" >> ${save_dir}/CRTC_GROUP
elif [ "${into_cmcc}" != "" ];then
echo "$line CHINAMOBLIE_GROUP" >> ${save_dir}/CHINAMOBILE_GROUP
elif [ "${into_unicom}" != "" ];then
echo "$line CHINAUNICOM_GROUP" >> ${save_dir}/CHINAUNICOM_GROUP
else
echo "$line OTHERNET_GROUP" >> ${save_dir}/OTHERNET_GROUP
fi
done<$apnic_all_ip
利用上面产生的地址列表结果,可以做智能dns解析,做用户来源分析,很方便。
作者:
woodie
时间:
2008-05-08 09:18
非常好!收藏之。
提点小建议:
1.是不是把whois结果的route字段写入最终的地址范围文件,因为这个是带掩码的,比只写network address更能精确界定IP的“范围”。
2.运营商的名称是不是就不用写入文件了?因为从文件名就能反映出来了。
无论如何是个好东西,顶你。
作者:
huangweichina
时间:
2008-05-08 11:09
楼主很强大
作者:
vrlinux.cn
时间:
2008-05-08 11:56
好文,收藏
作者:
meeslo
时间:
2008-05-08 14:45
orz! 收下了.!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2