lionsoul2014/ip2region
 Watch   
 Star   
 Fork   
4 days ago
ip2region

v3.13.0

版本更新

  • 标准化国内特殊行政区域的命名为长称:香港->香港特别行政区,澳门->澳门特别行政区等。
  • 依据社区的一些反馈修正部分国内 IPv4 / IPv6 的定位信息。
  • IPv4 和 IPv6 全部海外的定位信息更新为 2026/01 版本,并且海外的定位信息全部映射为英文,国内的数据继续保持为中文,国家名字遵循 iso-3166 标准(除了 ”科索沃“ - 非官方代码 XK),例如:77.97.180.0|77.97.180.255|United Kingdom|England|Yateley|0|GB
  • IPv4 和 IPv6 全部数据增加了 iso-3166-alpha2-code (国家两字母的简称) 字段,定位信息格式统一为 国家|省份|城市|ISP|iso-3166-alpah2-code,例如:223.104.60.0|223.104.60.127|中国|广东省|深圳市|移动|CN
  • 全部的保留 IP 段的定位信息标准化为 Reserved|Reserved|Reserved|0|0
  • 全部 binding 的 README 中的测试定位信息更新为最新的数据。

xdb 二进制文件也使用最新数据重新生成了,请及时升级。

What's Changed

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.12.0...v3.13.0

21 days ago
ip2region

v3.12.0

版本更新

What's Changed

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.11.2...v3.12.0

25 days ago
ip2region

v3.11.2

版本详情

  • Java LongByteArray 增加固定切片支持,可以设置固定字节数的切片且可以更快的完成指定 offset 的寻址定位操作。
  • Java xdb 内部的 content 缓存默认修改为固定切片的 LongByteArray 实现,避免 content 缓存时的 OOM 错误减少峰值堆内存占用,默认的 sliceBytesSearcher.DEFAULT_SLICE_BYTES = 50MiB
  • C# ContentCacheStrategy 直接实现 ICacheStrategy 接口减少启动时候的峰值内存占用。

What's Changed

New Contributors

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.11.1...v3.11.2

2025-12-14 11:14:20
ip2region

v3.11.1

核心修改

  • java xdb 内部的 String xdbPath 全部替换为 File xdbFile,支持通过 File 创建查询对象
  • java xdb.Searcher 增加通过 InputStream 加载整个 xdb 文件 / header / 验证
  • java service.ConfigBuilder 增加 setXdbInputStreamsetXdbFile,支持通过 InputStreamFile 构建 service.Config
  • maven pom 版本更新为 3.3.1

What's Changed

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.11.0...v3.11.1

2025-12-09 10:55:13
ip2region

v3.11.0

版本更新

  • Java Ip2Region 服务类实现移动到 org.lionsoul.ip2region.service 包下。
  • Java 的查询测试改用 Ip2Region 查询服务来实现,默认使用 data/ip2region_v4.xdbdata/ip2region_v6.xdb,可支持同时输入 IPv4 和 IPv6。
  • Golang 增加 Ip2Region 查询服务实现,并发安全支持且支持同时输入 IPv4 和 IPv6 的查询。
  • Golang 的查询测试改用 Ip2Region 查询服务来实现,默认使用 data/ip2region_v4.xdbdata/ip2region_v6.xdb,可支持同时输入 IPv4 和 IPv6。

What's Changed

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.10.0...v3.11.0

2025-12-02 10:29:17
ip2region

v3.10.0

版本核心功能:

  1. C++ IPv6 查询/生成/编辑器支持。
  2. Java ip2region 查询服务 - IP 版本自动判断且线程安全的查询服务,使用方式请参考 Java Binding ReadMe, Maven pom 版本更新为 3.2.0

What's Changed

  • refactor and support ipv6 for binding maker and editor use C++ by @liuyunbin in https://github.com/lionsoul2014/ip2region/pull/403
  • java ip2region searcher service with IP version auto detect and Thread-safe search support by @lionsoul2014 , maven pom version upgrade to 3.2.0.

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.9.0...v3.10.0

2025-11-25 20:08:57
ip2region

v3.9.0

该版本的核心功能是 C# IPv6 查询支持。

What's Changed

Full Changelog: https://github.com/lionsoul2014/ip2region/compare/v3.8.1...v3.9.0

2025-11-05 10:40:59
ip2region

v3.8.1

ip2region 3.8.1 版本主要是一些 binding 的标准或者低版本支持,具体更新如下:

  1. c binding 支持 c99 标准并且 Makefile 默认添加了 -std=c99 编译选项。
  2. lua_c binding 支持 c99 标准同时完成了 lua >= 5.1 版本的兼容,Makefile 默认也添加了 -std=c99 编译选项,例如编译 Lua 5.1 版本的扩展:
# cd lua_c binding
make LuaVersion=5.1
  1. python binding 完成了 Python >= 3.7 版本的兼容,Pypi 版本号更新为 3.0.2
2025-11-02 21:47:07
ip2region

v3.8.0

  1. py_ip2region pypi 包支持:
pip3 install py-ip2region
  1. utilsearcher 模块:
# 工具包模块,例如:ip 解析,版本信息,vectorIndex / buffer加载等
import ip2region.util as util
# xdb 查询实现模块
import ip2region.searcher as xdb

# 使用方式参考 python binding 的 ReadMe
  1. python binding 提供了对 IPv6 的查询支持,具体使用文档请参考 Python Binding,测试方式如下:
(.venv) ➜  python git:(master) python3 search_test.py --db=../../data/ip2region_v6.xdb 
ip2region xdb searcher test program
source xdb: ../../data/ip2region_v6.xdb (IPv6, vectorIndex)
type 'quit' to exit
ip2region>> ::
{region: , ioCount: 1, took: 180 μs}
ip2region>>  240e:3b7:3272:d8d0:3b7b:3ee0:1d39:848
{region: 中国|广东省|深圳市|家庭宽带, ioCount: 8, took: 251 μs}
ip2region>> 2001:3:ffff:ffff:ffff:ffff:ffff:ffff
{region: 0|0|内网IP|内网IP, ioCount: 18, took: 474 μs}
ip2region>>
  1. 查询平均耗时:Razer 笔记本 / Ubuntu (电源均衡模式) + SATA SSD / VectorIndex 缓存,bench 结果如下:
(.venv) ➜  python git:(master) ✗ python3 bench_test.py --db=../../data/ip2region_v6.xdb --src=../../data/ipv6_source.txt --cache-policy=vectorIndex
searcher -> {"version": IPv6, "db_path": "../../data/ip2region_v6.xdb", "v_index": 524288, "c_buffer": None}
Bench finished, {cachePolicy: vectorIndex, total: 1614544, took: 65.378 s, cost: 40 μs/op}

161.45 万个 IPv6 平均查询耗时为 40 微秒/次。

2025-10-21 14:18:31
ip2region

v3.7.1

  1. 支持 xdb 3.0 的 binding 查询结果返回统一:查询出错保持原有的方式,找到了就返回字符串的 region 信息,如果找不到指定 IP 的定位信息则返回空字符串 "" ;原来的比较混乱,各种语言不统一,这对于一些自定义数据或者数据不完整的情况会出现,例如 ipv6 的原始数据就是从 1:1:: 开始的,搜索 :: 就会返回空。
  2. 支持 xdb 3.0 的 binding 中的 ReadMe 测试定位信息纠正,使用最新的 IPv6 纠正错误的定位信息。
  3. 支持 xdb 3.0 的 binding ReadMe 增加查询 API 的原型描述。
  4. binding 发行版本更新: Java:
<dependency>
    <groupId>org.lionsoul</groupId>
    <artifactId>ip2region</artifactId>
    <version>3.1.1</version>
</dependency>

npm 版本更新为 3.1.6