免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4049 | 回复: 4
打印 上一主题 下一主题

自动产生电信_网通_教育网_铁通_移动_联通ip地址范围(原创) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-08 02:59 |只看该作者 |倒序浏览
近来工作中,遇到为了根据来访的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解析,做用户来源分析,很方便。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2008-05-08 09:18 |只看该作者
非常好!收藏之。
提点小建议:
1.是不是把whois结果的route字段写入最终的地址范围文件,因为这个是带掩码的,比只写network address更能精确界定IP的“范围”。
2.运营商的名称是不是就不用写入文件了?因为从文件名就能反映出来了。
无论如何是个好东西,顶你。

论坛徽章:
0
3 [报告]
发表于 2008-05-08 11:09 |只看该作者
楼主很强大

论坛徽章:
0
4 [报告]
发表于 2008-05-08 11:56 |只看该作者
好文,收藏

论坛徽章:
0
5 [报告]
发表于 2008-05-08 14:45 |只看该作者
orz! 收下了.!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP