ip2region 3.10.0 发布 - C++ IPv6 & Java 并发安全支持
Ip2region 是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。
ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的 商用离线数据、在线查询测试、xdb 使用 / 技术文档。
ip2region 3.10.0 详细更新如下:
1,C++ xdb 查询 / 生成 / 原始文件编辑的 IPv6 支持,详情可以参考 PR@403。
2,Java 增加了 ip2region 查询服务,自动 IP 版本检测并且线程安全,适用于高并发场景,详细使用文档请参考 [Java binding],建议 java 使用场景优先使用该查询服务来进行 xdb 查询:
// 1, 创建 v4 的配置:指定缓存策略和 v4 的 xdb 文件路径
final Config v4Config = Config.custom()
.setCachePolicy(Config.VIndexCache) // 指定缓存策略: NoCache / VIndexCache / BufferCache
.setSeachers(15) // 设置初始化的查询器数量
.setXdbPath("ip2region v4 xdb path") // 设置 v4 xdb 文件的路径
.asV4(); // 指定为 v4 配置
// 2, 创建 v6 的配置:指定缓存策略和 v6 的 xdb 文件路径
final Config v6Config = Config.custom()
.setCachePolicy(Config.VIndexCache) // 指定缓存策略: NoCache / VIndexCache / BufferCache
.setSeachers(15) // 设置初始化的查询器数量
.setXdbPath("ip2region v6 xdb path") // 设置 v6 xdb 文件的路径
.asV6(); // 指定为 v6 配置
// 3,通过上述配置创建 Ip2Region 查询服务
final Ip2Region ip2Region = Ip2Region.create(v4Config, v6Config);
// 4,导出 ip2region 服务进行双版本的IP地址的并发查询,例如:
final String v4Region = ip2Region.search("113.92.157.29"); // 进行 IPv4 查询
final String v6Region = ip2Region.search("240e:3b7:3272:d8d0:db09:c067:8d59:539e"); // 进行 IPv6 查询
// 5,在服务需要关闭的时候,同时关闭 ip2region 查询服务
ip2Region.close();
maven pom 版本更新为 3.2.0,最新坐标如下:
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>3.2.0</version>
</dependency>