• 技术文章 >后端开发 >php教程

    Git 项目推荐 | ip 地址映射库

    2016-06-23 13:10:33原创857

    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: chenxin619315@gmail.com  || Type 'quit' to exit program      |+----------------------------------+p2region>> 101.105.35.572163|中国|华南|广东省|深圳市|鹏博士 in 0.02295 millseconds

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

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

    6. 联系作者:

    狮子的魂: chenxin619315@gmail.com

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PSR-2 代码风格规范 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP反序列化入门总结(小白必看)• 一文详解PHP用流方式实现下载文件(附代码示例)• PHP原生类的总结分享• 聊聊PHP escapeshellarg函数使用的中文问题• 分享PHP函数使用小工具(附代码示例)
    1/1

    PHP中文网