抓取taobao的IP库

来源:互联网 发布:淘宝抽奖转盘怎么弄 编辑:程序博客网 时间:2024/05/17 23:18

目的

和地理位置相关的应用、和智能调度相关的应用、都离开一个准确的IP库,如果是单个ip库查询,我们可以去ip138或者ip.taobao.com或者ipip.net或者其他站长工具查询,但是需要我们需要一个完整的ip库,则可能需要自己去抓取一份、或者购买商业的ip库。
最近试着用go语言写一份抓取完整ip库的程序、数据源是ip.taobao.com。从各大州ip地址中心获取最初的ip分段、依次对各个ip段进行探测和验证、生成了一份ip库数据。对于简单的应用完全可以使用。

原理

对于原始的IP段,采用如下的思路确定ip段的具体位置信息。
1、从ip.taobao.com 获取ip段首个ip的信息
2、获取ip段最后一个ip的信息。
3、获取中间ip的信息。
4、如果第一个、最后一个、中间一个ip的在省份级别是相同的,则认为此ip段是一个完整的ip段,地理信息就是抓取的信息。
5、如果三个ip不相同,则递归探测第一个ip到中间ip这个ip段。以及中间ip的下一个到最后一个ip的ip段。
6、直到所有ip段都已经探测完毕。

代码:

https://github.com/zhiyuan2007/getiplib

以下是从抓取的数据中分析的结果

国家举例

AD|安道尔共和国AE|阿拉伯联合酋长国AF|阿富汗AG|安提瓜和巴布达AI|安圭拉AL|阿尔巴尼亚AM|亚美尼亚AO|安哥拉AQ|南极洲AR|阿根廷

运营商举例

1000102|飞华领航1000103|国研网1000104|金桥网1000106|神州在线1000109|首信网1000114|中国科技网1000117|中信网络1000118|京宽网络

省份举例

110000|北京市120000|天津市130000|河北省140000|山西省150000|内蒙古自治区210000|辽宁省220000|吉林省230000|黑龙江省310000|上海市320000|江苏省330000|浙江省340000|安徽省

城市举例

110100|北京市110200|北京市120100|天津市130100|石家庄市130200|唐山市130300|秦皇岛市130400|邯郸市130500|邢台市130600|保定市130700|张家口市130900|沧州市131000|廊坊市

抓取数据格式举例

1.2.4.0|1.2.4.255|256|中国:CN|中国互联网信息中心:1000189|华北:100000|北京市:110100|北京市:1100001.2.5.0|1.2.5.255|256|中国:CN|电信:100017|华东:300000|福州市:350100|福建省:3500001.2.6.0|1.2.7.255|512|中国:CN|电信:100017|华东:300000|福州市:350100|福建省:3500001.2.8.0|1.2.8.255|256|中国:CN|中国互联网信息中心:1000189|华北:100000|北京市:110100|北京市:1100001.2.9.0|1.2.9.255|256|中国:CN|电信:100017|华南:800000|广州市:440100|广东省:4400001.2.10.0|1.2.11.255|512|中国:CN|电信:100017|华南:800000|广州市:440100|广东省:4400001.2.12.0|1.2.15.255|1024|中国:CN|电信:100017|华南:800000|广州市:440100|广东省:4400001.2.16.0|1.2.31.255|4096|中国:CN|电信:100017|华南:800000|广州市:440100|广东省:4400001.2.32.0|1.2.63.255|8192|中国:CN|电信:100017|华南:800000|广州市:440100|广东省:4400001.2.64.0|1.2.127.255|16384|中国:CN|电信:100017|华南:800000|广州市:440100|广东省:440000
0 0
原创粉丝点击