Skip to content

Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is less then 5Mb with all ip address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm

License

Notifications You must be signed in to change notification settings

zmflash/ip2region

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ip2region - ip到地区的映射库,妈妈再也不用担心我的ip定位。

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

数据聚合了一些知名ip到地名查询提供商的数据,这些是他们官方的的准确率,经测试着实比纯真啥的准确多了。
每次聚合一下数据需要1-2天,会不定时更新。

2. 标准化的数据格式:

每条ip数据段都固定了格式:城市Id|国家|区域|省份|城市|ISP
只有中国的数据精确到了城市,其他国家只能定位到国家,后前的选项全部是0,已经包含了全部你能查到的大大小小的国家。
(请忽略前面的城市Id,个人项目需求)

3. 体积小:

生成的数据库文件ip2region.db只有3.5M

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

已经集成的客户端有:java, php, c, python,php扩展(目前只支持linux)。

提供了两种查询算法,响应时间如下:
客户端/binary算法/b-tree算法:
java/0.x毫秒/0.x毫秒 (使用RandomAccessFile)
php/0.x毫秒/0.1x毫秒
c/0.0x毫秒/0.0x毫秒(b-tree算法基本稳定在0.02x毫秒级别)
python/0.x毫秒/0.1x毫秒

任何客户端b-tree都比binary算法快

5. 测试程序: java:

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

php:

    php binding/php/testSearcher ./data/ip2region.db

c:

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

python:

    python binding/python/testSearcher ./data/ip2region.db

均会看到如下界面:

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

输入ip地址开始测试,第一次会稍微有点慢,在运行命令后面接入binary来尝试binary算法,建议使用b-tree算法。

具体集成请参考不同客户端的测试源码。

6. 联系作者:

狮子的魂: [email protected]

About

Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is less then 5Mb with all ip address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 25.0%
  • Java 13.9%
  • JavaScript 13.4%
  • C# 12.6%
  • Rust 10.3%
  • PHP 7.0%
  • Other 17.8%