Ip2region离线IP地址定位库和IP定位数据管理框架

说个云也原生 2024-03-20 03:48:01

ip2region - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。

1、IP 数据管理框架

xdb 支持亿级别的 IP 数据段行数,默认的 region 信息都固定了格式:国家|区域|省份|城市|ISP,缺省的地域信息默认是0。 region 信息支持完全自定义,例如:你可以在 region 中追加特定业务需求的数据,例如:GPS信息/国际统一地域信息编码/邮编等。也就是你完全可以使用 ip2region 来管理你自己的 IP 定位数据。

2、数据去重和压缩

xdb 格式生成程序会自动去重和压缩部分数据,默认的全部 IP 数据,生成的 ip2region.xdb 数据库是 11MiB,随着数据的详细度增加数据库的大小也慢慢增大。

3、极速查询响应

即使是完全基于 xdb 文件的查询,单次查询响应时间在十微秒级别,可通过如下两种方式开启内存加速查询:

vIndex 索引缓存 :使用固定的 512KiB 的内存空间缓存 vector index 数据,减少一次 IO 磁盘操作,保持平均查询效率稳定在10-20微秒之间。xdb 整个文件缓存:将整个 xdb 文件全部加载到内存,内存占用等同于 xdb 文件大小,无磁盘 IO 操作,保持微秒级别的查询效率。xdb数据查询

API 介绍,使用文档和测试程序请参考对应 searcher 查询客户端下的 ReadMe 介绍,全部查询 binding 实现情况如下:

Ok?

状态

编程语言

描述

贡献者

已完成

golang

golang xdb 查询客户端实现

Lion

已完成

php

php xdb 查询客户端实现

Lion

已完成

java

java xdb 查询客户端实现

Lion

已完成

lua

纯 lua xdb 查询客户端实现

Lion

已完成

c

ANSC c xdb 查询客户端实现

Lion

已完成

lua_c

lua c 扩展 xdb 查询客户端实现

Lion

已完成

rust

rust xdb 查询客户端实现

gongzhengyang

已完成

python

python xdb 查询客户端实现

厉害的花花

已完成

nodejs

nodejs xdb 查询客户端实现

Wu Jian Ping

已完成

csharp

csharp xdb 查询客户端实现

Alen Lee

已完成

erlang

erlang xdb 查询客户端实现

leihua996

待开始

php_ext

php c 扩展 xdb 查询客户端实现

待确定

已完成

nginx

nginx 扩展 xdb 查询客户端实现

Wu Jian Ping

以下工具链实现由社区开发者通过第三方仓库贡献:

Ok?

状态

编程语言

描述

贡献者

已完成

ruby-ip2region

ruby xdb 查询客户端实现

jicheng1014

已完成

Ip2regionTool

ip2region数据转换工具

orestonce

xdb数据生成

API 介绍,使用文档和测试程序请参考如下 maker 生成程序下的 ReadMe 文档:

Ok?

状态

编程语言

描述

贡献者

已完成

golang

golang xdb 生成程序实现

Lion

已完成

java

java xdb 生成程序实现

Lion

待开始

c

ANSC c xdb 生成程序实现

Lion

已完成

python

python xdb 生成程序实现

leolin49

已完成

csharp

csharp xdb 生成程序实现

Alan Lee

xdb数据更新

ip2region 旨在于 研究 IP 数据的存储和快速查询的设计和实现,并没有原始 IP 数据的支撑,也不会有商用版本。 本项目的自带的 ./data/ip.merge.txt 原始数据已经很久没有更新,也不会再更新,对于数据精度和更新频率要求很高的使用场景建议购买第三方商用数据,你可以使用如下几种方式来尝试自己更新数据:

手动编辑更新

你可以基于 ip2region 自带的 ./data/ip.merge.txt 原始 IP 数据用 ip2region 提供的编辑工具来自己修改,目前数据源有如下几种方式:

ip2region 社区提供的数据(请参考地底部的公众号关注社区通知)ip2region Github/Gitee 中带有 [数据源补充] 标签的 Issue其他自定义数据:例如客户提供的数据,或者通过 GPS 和 WIFI 定位得到的数据,或者来自其他平台的合法合规的数据

原始 IP 数据编辑工具使用方法请参考如下的 maker 生成程序下的 ReadMe 文档:

Ok?

状态

编程语言

描述

贡献者

已完成

golang

golang 原始 IP 数据编辑器

Lion

待开始

java

java 原始 IP 数据编辑器

Lion

下载地址https://github.com/lionsoul2014/ip2region
0 阅读:0
说个云也原生

说个云也原生

感谢大家的关注