ip2region 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
ip2region 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
操作系统: 跨平台
收录时间: 2015-11-02
提 交 者: 狮子的魂

ip2region——准确率 99.9% 的 ip 地址定位库,0.0x 毫秒级查询,数据库文件大小只有 1.5M,提供了 java、php、c、python、node.js、golang 查询绑定和 Binary、B 树、内存三种查询算法,妈妈再也不用担心我的 ip 地址定位!

1. 99.9%准确率,定时更新:

数据聚合了一些知名 ip 到地名查询提供商的数据,这些是他们官方的的准确率,经测试着实比纯真啥的准确多了。

每次聚合一下数据需要 1-2 天,会不定时更新。 

2. 标准化的数据格式:

每条 ip 数据段都固定了格式:城市Id|国家|区域|省份|城市|ISP

只有中国的数据精确到了城市,其他国家只能定位到国家,后前的选项全部是0,已经包含了全部你能查到的大大小小的国家。

(请忽略前面的城市 Id,个人项目需求) 

3. 体积小:

生成的数据库文件 ip2region.db 只有 1.5M (1.2 版本前 3.5M) 

4. 多查询客户端的支持,0.0x 毫秒级别的查询

已经集成的客户端有: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算法快

5. 测试程序:

    java:

	cd binding/java
	ant all
	java -jar ip2region-{version}.jar ./data/ip2region.db

php:

    php binding/php/testSearch ./data/ip2region.db

c:

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

均会看到如下界面:

initializing  B-tree ... 
+----------------------------------+
| ip2region test script            |
| Author: chenxin619315@gmail.com  |
| Type 'quit' to exit program      |
+----------------------------------+
ip2region>>

输入ip地址开始测试,第一次会稍微有点慢,在运行命令后面接入binary,memory来尝试对应算法,建议使用b-tree算法,有速度和并发追求的使用memory算法。具体集成请参考不同客户端的测试源码。 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

ip2region 的相关博客

ip2region

崛起于Springboot2.0.X之集成ip2region(31)

崛起于Springboot2.X + ip2region(31)

《SpringBoot2.X心法总纲》 ip2region:可以根据他获取一个具体ip的信息,国家、具体地址、网络服务商 1、添加依赖 <dependenc...

网关中集成ip2region的方法

之前公司遇到的网络攻击中,虽然在虽然有记录ip的功能,但是ip地址的归属地在哪里是不知道的。只能在百度中查询一下,但是这个...

mica 2.0.1 发布新增最好用的 ip2region boot stater

mica(云母) mica 由如梦技术内部的 lutool(撸秃)演变而来。lutool 诞生于 2017 年,受 jhipster 启发逐步形成一个微服务的...

springboot项目中集成ip2region遇到的问题及终极解决办法

1、问题回顾 按照ip2region项目的官方集成到springboot项目后,运行测试一切都ok,没有任何问题。但是当项目打成可执行的jar...

Spark- 根据IP获取城市(java)

开源 IP 地址定位库 ip2region 1.4 ip2region 是准确率 99.9% 的 IP 地址定位库,0.0x毫秒级查询,数据库文件大小只有 2.7M,...

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

来源:gitee.com/lionsoul/ip2region Ip2region特性 ip2region快速测试 ip2region安装 ip2region 并发使用 ip2region.db的生成...

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

点击关注上方“杰哥的IT之旅”, 后台回复“Python自动化”获取精心整理的PDF。 来源 | https://gitee.com/lionsoul/ip2regi...

DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力

Data Lake Analytics 作为云上数据处理的枢纽,最近加入了通过IP地址查找对应的国家、省份、城市、ISP的函数, 今天带大家体验...

Hive UDF IP解析(二):使用geoip2数据库自定义UDF

开发中经常会碰到将IP转为地域的问题,所以以下记录Hive中自定义UDF来解析IP。 使用到的地域库位maxmind公司的geoIP2数据库,...

ip2region 的相关问答

评论 (17)

加载中
有.Net core版本吗?
2019/01/07 09:32
回复
举报
能否精确到坐标
2019/01/02 14:30
回复
举报
是不是快更新到ipv6的数据了,ipv6的地址库比ipv4少吧
2018/11/27 11:20
回复
举报
用了你的 #ip2region#中的ip数据,很方便。
2018/01/17 17:44
回复
举报
狮子的魂软件作者
#ip2region# 1.3版本忘记把binding内的各种语言实现的header bytes调整了,已经调整同步了代码,请下载最新版本的v1.3-release分之
2017/10/21 12:54
回复
举报
没有MAVEN和gradle吗?
2017/06/10 15:46
回复
举报
发现一个问题哈,80.82.78.38这个ip在百度和纯真上面解析得到是荷兰 阿姆斯特丹Ecatel公司,在以前的版本中解析得到是荷兰,在最新版本中是得到塞舌尔,哥,你能说说怎么回事吗?
2017/06/07 16:36
回复
举报
请问乱码如何解决
2017/05/23 15:43
回复
举报
打分: 力荐
http://blog.csdn.net/sinat_24820331/article/details/68969558 写了一个类似的大家可以参考一下
2017/04/28 21:24
回复
举报
请问下,由ngx_lua版吗?
2017/04/13 12:44
回复
举报
更多评论
17 评论
682 收藏
分享
返回顶部
顶部