点击关注公众号,利用碎片时间学习

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 下的测试源码。

开源地址:

  • https://github.com/zoujingli/ip2region

感谢阅读,希望对你有所帮助 :) 

来源:开源技术专栏

推荐:最全的java面试题库PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

准确率 99.9% 的离线IP地址定位库相关推荐

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

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

  2. 一个还不错的离线 IP 地址定位库,99.9% 准确率!

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...

  3. 开源:推荐一个不错的离线IP地址定位库

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://gitee.com/lions ...

  4. 使用强大的离线IP地址定位库ip2region获取城市信息

    文章目录 一.简介 二.ip2region的使用 1.引入依赖 2.下载ip2region.db 3.IpUtils工具类 一.简介    ip2region - 准确率99.9%的离线IP地址定位库 ...

  5. 毫秒级查询的离线IP地址定位库,太实用了!

      大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!   咱们程序员开发任何系统, ...

  6. Ip2region 离线IP地址定位库和IP定位数据管理框架

    老板要我做一个 IP 属地功能!我摸索了 1 天,搞定了.♥️ 细心的朋友应该会发现,最近,继新浪微博之后,头条.腾讯.抖音.知乎.快手.小红书等各大平台陆陆续续都上线了"网络用户IP地址显 ...

  7. Ip2region 离线IP地址定位库

    Ip2region 是什么 ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现. Gi ...

  8. 若依集成ip2region实现离线IP地址定位

    离线IP地址定位库主要用于内网或想减少对外访问http带来的资源消耗. 目录 一.引入依赖 二.添加工具类RegionUtil.java 三.修改AddressUtils.java 四.添加离线IP地 ...

  9. 埃文科技推出免费区县级别IP地址定位库 提升IP地址定位行业标准

     IP地址定位市场已发展多年.国际上的老牌IP地址定位公司,如 MaxMind.IP2Location 与 Digital Element 等为代表的国外传统 IP地址定位公司,在国际市场占据主要 ...

最新文章

  1. 【连载】优秀程序员的45个习惯之37——提供有用的错误信息
  2. linux系统下如何查看cpu能同时跑几个线程_探讨基于Linux的NUMA系统
  3. LeetCode之Sort List
  4. maven helper的使用
  5. 使用ListView实现汽泡短信聊天
  6. boost::put_get_helper用法的测试程序
  7. Windows下用命令行导出导入MySQL数据库
  8. ubuntu 打包压缩
  9. python zip压缩_Python zip压缩与解压(zipfile模块实例)
  10. Power Designer的4种模型文件
  11. 集体智慧编程(5)——优化
  12. cuda以及cudnn下载慢的问题解决!
  13. 关于如何把支持VS2015的插件BabeLua改成支持VS2017
  14. 解决 Android 7.0 SQLiteCantOpenDatabaseException: unknown error (code 14)
  15. 如何经营好自己的朋友圈
  16. 三、【React-Router6】重定向 Navigate
  17. STM32控制步进电机运三种方式控制源码详解:主从定时器+编码器闭环+GPIO模拟(基于【TB6600】【DRV8825】驱动器)
  18. omf多路径 oracle_OMF下Restore Oracle Datafile的优先级问题
  19. C#学习笔记之从入门到精通
  20. 收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想的Offer呀~

热门文章

  1. 中星微ZC301P摄像头驱动支持
  2. POOLED和UNPOOLED源码分析
  3. 苹果钱包显示无法连接apple pay
  4. 修改主机名引起NNM无法正常启动
  5. 【IoT】RC522 读取 NFC 卡 SN 号
  6. python三种基本数据类型有哪些_python中有哪些基本数据类型
  7. 数据中台:基于标签体系的360°用户画像
  8. pdf文件怎么修改图片
  9. 服务器安全狗使用心得
  10. WKA去中心化交易,重构区块链价值网络