准确率 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 下的测试源码。
开源地址:
https://github.com/zoujingli/ip2region
感谢阅读,希望对你有所帮助 :)
来源:开源技术专栏
推荐:最全的java面试题库PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!
准确率 99.9% 的离线IP地址定位库相关推荐
- 准确率99.9%的离线IP地址定位库
准确率99.9%的离线IP地址定位库. Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒.DB 文件只有几兆字节,其中存储了所有 IP 地址.支持 ...
- 一个还不错的离线 IP 地址定位库,99.9% 准确率!
点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...
- 开源:推荐一个不错的离线IP地址定位库
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://gitee.com/lions ...
- 使用强大的离线IP地址定位库ip2region获取城市信息
文章目录 一.简介 二.ip2region的使用 1.引入依赖 2.下载ip2region.db 3.IpUtils工具类 一.简介 ip2region - 准确率99.9%的离线IP地址定位库 ...
- 毫秒级查询的离线IP地址定位库,太实用了!
大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标! 咱们程序员开发任何系统, ...
- Ip2region 离线IP地址定位库和IP定位数据管理框架
老板要我做一个 IP 属地功能!我摸索了 1 天,搞定了.♥️ 细心的朋友应该会发现,最近,继新浪微博之后,头条.腾讯.抖音.知乎.快手.小红书等各大平台陆陆续续都上线了"网络用户IP地址显 ...
- Ip2region 离线IP地址定位库
Ip2region 是什么 ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现. Gi ...
- 若依集成ip2region实现离线IP地址定位
离线IP地址定位库主要用于内网或想减少对外访问http带来的资源消耗. 目录 一.引入依赖 二.添加工具类RegionUtil.java 三.修改AddressUtils.java 四.添加离线IP地 ...
- 埃文科技推出免费区县级别IP地址定位库 提升IP地址定位行业标准
IP地址定位市场已发展多年.国际上的老牌IP地址定位公司,如 MaxMind.IP2Location 与 Digital Element 等为代表的国外传统 IP地址定位公司,在国际市场占据主要 ...
最新文章
- 【连载】优秀程序员的45个习惯之37——提供有用的错误信息
- linux系统下如何查看cpu能同时跑几个线程_探讨基于Linux的NUMA系统
- LeetCode之Sort List
- maven helper的使用
- 使用ListView实现汽泡短信聊天
- boost::put_get_helper用法的测试程序
- Windows下用命令行导出导入MySQL数据库
- ubuntu 打包压缩
- python zip压缩_Python zip压缩与解压(zipfile模块实例)
- Power Designer的4种模型文件
- 集体智慧编程(5)——优化
- cuda以及cudnn下载慢的问题解决!
- 关于如何把支持VS2015的插件BabeLua改成支持VS2017
- 解决 Android 7.0 SQLiteCantOpenDatabaseException: unknown error (code 14)
- 如何经营好自己的朋友圈
- 三、【React-Router6】重定向 Navigate
- STM32控制步进电机运三种方式控制源码详解:主从定时器+编码器闭环+GPIO模拟(基于【TB6600】【DRV8825】驱动器)
- omf多路径 oracle_OMF下Restore Oracle Datafile的优先级问题
- C#学习笔记之从入门到精通
- 收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想的Offer呀~