【51CTO.com原创稿件】ip2region是准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.6M,提供了java, php, c, python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法。
99.9%准确率,定时更新:数据聚合了一些知名ip到地名查询提供商的数据,这些是他们官方的的准确率,经测试着实比纯真啥的准确多了。每次聚合一下数据需要1-2天,会不定时更新。
标准化的数据格式:每条ip数据段都固定了格式:城市Id|国家|区域|省份|城市|ISP。其中,只有中国的数据精确到了城市,其他国家只能定位到国家,后前的选项全部是0,已经包含了全部你能查到的大大小小的国家。(请忽略前面的城市Id,个人项目需求)
已经集成的客户端有:java, php, c,python,php扩展,nodejs,golang。
提供了两种查询算法,响应时间如下:
客户端/binary算法/b-tree算法/Memory算法:
java/0.x毫秒/0.x毫秒/0.1x毫秒 (使用RandomAccessFile)
php/0.x毫秒/0.1x毫秒/0.1x毫秒 (php扩展将有更快的速度)
c/0.0x毫秒/0.0x毫秒/0.00x毫秒(b-tree算法基本稳定在0.02x毫秒级别)
python/0.x毫秒/0.1x毫秒/0.1x毫秒
任何客户端b-tree都比binary算法快
近日,ip2region 发布了***更新,1.2.4 具体更新如下:
一、重写了数据的升级算法,再次提高准确率,升级过程如下:
1. ip预分段,利于分布式同步升级
2. 分段同步升级,目前使用四个机器同时升级
3,自动验证数据查缺补全
4,数据合并
5,数据格式标准化,目前2个工作:
1),ipip.net的数据和淘宝数据保持区域名称统一,ipip.net的数据不带“省”和“市”关键字。
2),香港澳门台湾等地区信息修复(淘宝原始数据有问题),reported at http://git.oschina.net/lionsoul/ip2region/issues/21
6,重复ip段的合并得到data目录下的ip.merge.txt
7,生产data目录下的ip2region.db二进制数据库文件
二、修复原始数据关于“香港,台湾,澳门”地区信息错误的bug,reported at http://git.oschina.net/lionsoul/ip2region/issues/21
三、将数据升级至:2017/03/15同步版本
四、增加c_mmap查询客户端,C客户端查询文件读取使用内存映射加速,感谢[Leo Ma](http://git.oschina.net/begeekmyfriend)的贡献
下载地址:
大码云:http://git.oschina.net/lionsoul/ip2region/tree/v1.2.4-release
github:https://github.com/lionsoul2014/ip2region/releases/tag/v1.2.4-release
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】