proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« freeip CERNET分担费用政策中定义的国内流量地址列表 20071113 | Main | linux perl 通过 FreeTDS 连接 windows Microsoft Sql Server 数据库 »

November 21, 2007

吐血分析 apnic 的地址段数据

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2007/11/21/001291.html

想看看北京的IP段情况
于是又折腾了下 apnic

从 apnic ftp 下载数据很方便
http://ftp.apnic.net/stats/apnic/delegated-apnic-latest
http://ftp.apnic.net/whois-data/APNIC/split/apnic.db.inetnum.gz
http://ftp.apnic.net/whois-data/APNIC/split/apnic.db.route.gz

之所以说吐血 是因为数据的规范性太差 一致性太差
比如 route 里面没有202.106.
比如 netname mnt-by descr等都乱七八糟
所以通过 MAINT-CHINANET-BJ MAINT-CNCGROUP-BJ 等不可能方获得
想简单脚本处理都不容易 因为数据太乱
whois3 -h whois.apnic.net -T inetnum -i mb MAINT-CHINANET-BJ
whois3 -h 202.12.29.13 -T inetnum -i mb MAINT-CNCGROUP-BJ
whois3 -h whois.apnic.net -T inetnum CRBjB

whois3 从 http://ftp.apnic.net/apnic/dbase/tools/ 下载
具体帮助可以看help或者
http://www.apnic.net/db/search/all-options.html

最后只好 教育网用cernet发布的 region 简单整理
全中国的ip通过 |CN|ipv4| 从delegated-apnic-latest获取
掩码计算可以直接用这里的 32-log($i)/log(2) 也可以计算起止地址
比如 use POSIX;$digit=16-ceil(log($ipend2-$ip2+1)/log(2));
其余具体看inetnum descr
写了个循环比对 apnic.db.inetnum.gz 和 CN@delegated-apnic-latest
descr 有 beijing 的算 (这样当然会误伤 人工过滤吧)

循环还有一些简单技巧
匹配上inetnum: $ip 后
比对是否中国ip 是的话做个标记 (如果grep比对 记得转义. grep "^$ipt")
后面才是 descr 有标记做一下字符拼接 记一下老ip
下次过来: 先判断上一次中国ip的descr 是北京打印 置空descr
然后再判断ip
不是中国ip 把标记拿掉
是中国ip 把标记加上
后面再遇到descr 还是看标记 循环顺利跑起来

由于文件比较大 还做了个进度提示条
循环计数 (500万行 5万行算1% 进1)
if($jcmp>$j){ $j++; print "$j\n"; }

方法可以复制 准则值得改进 吐血...

本blog WWW

Posted by windtear at November 21, 2007 4:22 AM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.