您现在的位置是:首页 > 文章详情

Ip2region 3.2.0 发布 - PHP 添加了 IPv6 的支持

日期:2025-09-16点击:6

Ip2region 是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。

ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的 商用离线数据在线查询测试xdb 使用 / 技术文档

Ip2region 3.2.0 详细更新如下

1,PHP binding 提供了对 IPv6 的查询支持,具体使用文档请参考 PHP Binding,测试方式如下:

➜  php git:(master) php search_test.php --db=../../data/ip2region_v6.xdb
ip2region xdb searcher test program
source xdb file: ../../data/ip2region_v6.xdb (IPv6, vectorIndex)
type 'quit' to exit
ip2region>> ::
{region: |||, ioCount: 2, took: 0.03223 ms}
ip2region>> 2001:3:ffff:ffff:ffff:ffff:ffff:ffff
{region: 美国|加利福尼亚州|洛杉矶|专线用户, ioCount: 21, took: 0.06592 ms}
ip2region>> 240e:3b7:3272:d8d0:3b7b:3ee0:1d39:848
{region: 中国|广东省|深圳市|家庭宽带, ioCount: 14, took: 0.05078 ms}

2,将具体的实现封装到了四个核心类,具体如下:

类名 描述
Util 全部的工具类函数都封装在这个类中,例如:parseIP / loadHeader / loadVectorIndex 等等。
IPv4 / IPv6  IP版本管理类,拆异化的 IPv4/IPv6 管理。    
Searcher xdb 查询的具体实现封装,主要提供了 search(string) 和 searchByBytes(bytes) 两个查询接口。

3,php binding 实现引入了命名空间  \ip2region\xdb 来进行管理,新的引入方式如下:

// 引入 xdb 类包,require 或者 autoload 对应的 class.
require 'xdb/Searcher.class.php'; 

// use 申明
use \ip2region\xdb\Util;
use \ip2region\xdb\{IPv4, IPv6};
use \ip2region\xdb\Searcher;

// 类的使用请参考 php binding 的 ReadMe

composer 引入请参考:zoujingli/ip2region

4,查询平均耗时:Razer 笔记本 / Ubuntu (电源均衡模式)  + SATA SSD / VectorIndex 缓存,bench 结果如下:

➜  php git:(master) php bench_test.php --db=../../data/ip2region_v6.xdb --src=../../data/ipv6_source.txt
Bench finished, {cachePolicy: vectorIndex, total: 34159862, took: 1587s, cost: 0.046 ms/op}

341.59 万个 IPv6 平均查询耗时为 46 微秒/次。

原文链接:https://www.oschina.net/news/372472/ip2region-3-2-0-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章