链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

zoujingli/ip2region:PHP版本的离线IP地址定位库

zoujingli/ip2region是一个方便PHP项目使用的离线IP地址定位库。它基于ip2region整合,可通过Composer安装。具有标准化的数据格式,数据去重和压缩特性。查询效率达10微秒级别,有多种缓存加速查询方式,包括vIndex索引缓存和整个xdb文件缓存。...

访问官网 →

【Github】项目名:zoujingli/ip2region – PHP版本的离线IP地址定位库

项目简介

此项目是基于ip2region整合而来,方便PHP项目用Composer安装。它是一个离线IP地址定位库和IP定位数据管理框架,查询效率达10微秒级别,有众多主流编程语言的xdb数据生成和查询客户端实现。数据格式标准化,有数据去重和压缩特性,支持多种缓存方式以加速查询,还能自定义region信息来管理自己的IP定位数据。

项目特性

1. 标准化的数据格式

每个ip数据段的region信息格式固定为:国家|区域|省份|城市|ISP,中国数据大部分精确到城市,其他国家部分数据只能定位到国家,后面选项为0。

2. 数据去重和压缩

默认全部IP数据生成的ip2region.xdb数据库为11MiB,数据详细度增加时数据库大小会增大。

3. 极速查询响应

基于xdb文件查询单次响应在十微秒级别,可通过vIndex索引缓存(用512KiB内存缓存vectorindex数据减少IO操作,使查询效率稳定在10 – 20微秒)和xdb整个文件缓存(将整个xdb文件加载到内存,无磁盘IO操作保持微秒级查询效率)两种方式加速查询。

4. IP数据管理框架

v2.0格式的xdb支持亿级别的IP数据段行数,region信息可完全自定义,例如追加GPS信息、国际统一地域信息编码、邮编等。

查询与生成API相关

介绍了xdb数据查询API和生成API,不同编程语言有不同的完成状态,如golang、php、java等语言在查询客户端和生成程序上有已完成或待开始等不同状态。并且提到查询接口非并发安全,在并发量很大时,基于文件查询可能导致打开文件数过多错误,可修改内核最大允许打开文件数或采用内存查询来安全并发使用。

项目总结

这个项目在IP定位数据的存储设计和多语言查询实现方面有深入研究,虽不保证数据及时更新且无商用版本,但提供了丰富的功能供开发者使用。希望大家能留言分享关于这个项目的看法或者使用过程中的问题等。

项目地址

GitHub链接直达