准确率 99.9% 的离线IP地址定位库

Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒。DB 文件只有几兆字节,其中存储了所有 IP 地址。

支持 Java、PHP、C、Python、Nodejs、Golang、C#、lua 等查询绑定。查询算法使用二叉树、B树和内存搜索算法。

功能特性

查询准确率高达99.9%

数据来源于一些知名的 IP 查询提供商,经测试比纯 IP 定位更准确一些。

  • >80% ,淘宝IP地址库:http://ip.taobao.com

  • ≈10% ,GeoIP:https://geoip.com

  • ≈2% ,纯真IP库:http://www.cz88.net

文件体积小

数据库文件 ip2region.db 只有几 MB 大小,最小的版本不超过 1.5MB,最大的不超过 8MB。

标准数据格式

每条 ip 数据段都固定了格式,目前只有国内的数据可以精确到城市级别,其他国家只有部分可以定位到国家,其余无法确认的数据默认值为 0 。

_城市Id|国家|区域|省份|城市|ISP_

查询速度快

所有客户端单次查询都在0.x毫秒级别,内置了三种查询算法:

  • • memory算法:整个数据库全部载入内存,单次查询都在0.1x毫秒内,C语言的客户端单次查询在0.00x毫秒级别。

  • • binary算法:基于二分查找,基于 ip2region.db文件,不需要载入内存,单次查询在0.x毫秒级别。

  • • b-tree算法:基于btree算法,基于 ip2region.db文件,不需要载入内存,单词查询在0.x毫秒级别,比 binary 算法更快。

多种查询客户端的支持

客户端已经集成 java、C#、php、c、python、nodejs、php 扩展(php5和php7)、golang、rust、lua、lua_c、nginx。

快捷安装

maven仓库地址

<dependency>  
    <groupId>org.lionsoul</groupId>  
    <artifactId>ip2region</artifactId>  
    <version>1.7.2</version>  
</dependency>

nodejs

npm install node-ip2region --save

nuget安装

Install-Package IP2Region

php composer

composer require zoujingli/ip2region

快速测试

请参考每个 binding 下的 README 说明去运行 cli 测试程序,例如 C 语言的 demo 运行如下:

cd binding/c/  
gcc -g -O2 testSearcher.c ip2region.c  
./a.out ../../data/ip2region.db

会看到如下 cli 界面:

initializing  B-tree ...   
+----------------------------------+  
| ip2region test script            |  
| Author: chenxin619315@gmail.com  |  
| Type 'quit' to exit program      |  
+----------------------------------+  
p2region>> 101.105.35.57  
2163|中国|华南|广东省|深圳市|鹏博士 in 0.02295 millseconds

输入 IP 地址开始测试,第一次会稍微有点慢,在运行命令后面接入 binary、memory 来尝试其他算法,建议使用 b-tree 算法,速度和并发需求的可以使用memory 算法,具体集成请参考不同 binding 下的测试源码。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的尤克里里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值