全球 IP 地址数据库(qqzeng-ip)
离线本地私有部署 · 零 API 依赖 · 毫秒级内存解析 · 月度全量更新
五大版本矩阵,精准匹配从基础定位到金融级风控全场景
✦ 全系标配 IPv4 + IPv6 双栈 与 CIDR / Range 双格式 | 附赠 QZDB 二进制解析引擎(24位 Trie 树只读 Mmap,千万级 QPS)
✦ 数据每月 1 日持续迭代升级 · 支持当期购买与包年更新服务
{
"cidr": "1.12.0.0/22",
"continent": "亚洲",
"continent_en": "Asia",
"country_code": "CN",
"country_alpha3": "CHN",
"country": "中国",
"country_en": "China",
"province": "北京",
"province_en": "Beijing",
"city": "北京",
"city_en": "Beijing",
"district": "朝阳区",
"district_en": "Chaoyang",
"geo_id": 2038349,
"longitude": "116.48088",
"latitude": "39.98909",
"timezone": "Asia/Shanghai",
"languages": "zh-CN",
"currency_code": "CNY",
"phone_prefix": "86",
"emoji_flag": "🇨🇳",
"isp": "腾讯云",
"asn": 132203,
"as_name": "Tencent-Net-Ap",
"as_domain": "tencent.com",
"usage_type": "Cloud"
}📋 全版本字段矩阵对比一览
✔ 包含 - 不包含 · std 6字段 · pro 11字段 · asn 8字段 · max 15字段 · ult 25字段
QZDB 引擎核心采用专门定制的 双阶段 Patricia Trie 树型检索算法:
1. 第一阶段 (Jump Table 快速跳级):
• IPv4:默认预读 16-bit 的静态前缀跳转表(216 = 65,536 个槽位)。根据 IP 的前两字节,直接 O(1) 跳转定位到 Trie 树的具体子树节点,消除前 16 层的递归遍历。
• IPv6:根据数据量大小动态估算最佳跳转位数 v6_jump_bits(通常为 16~20 bit),同样实现首阶段的快速降维。
2. 第二阶段 (Trie 节点匹配 & 字符串池偏移读取):
• 在定位到的子树节点中,以最长前缀匹配 (LPM) 算法沿单侧节点向右/向左遍历。所有中间路由指针和叶子节点数据在文件中扁平化连续存放,极具 CPU 缓存友好性。
• 查询命中后,SDK 会直接根据其物理偏移量(Offset)在预载入的只读字符串池(String Pool)中以 O(1) 解析最终文本,全程免去临界区上锁(Lock-free)。
| 维度指标 | 复杂度 | 技术细节与优势 |
|---|---|---|
| 检索时间复杂度 | O(W - K) | 其中 W 为 IP 地址总位数(IPv4 为 32 位,IPv6 为 128 位),K 为首阶段跳转位数(如 16 位)。平均只需 16 次比对即可完成检索。 |
| 空间复杂度 | 极小量级 | 经过前缀压路机压缩,每个 Trie 节点仅占用 6~8 字节,千万级全球 IP 树存储开销低于 20MB。 |
| 内存开销 (Memory) | O(0) | 原生编译型语言(Rust/C/Go)直接借助操作系统 mmap 进行零拷贝(Zero-copy)寻址,无堆分配与 GC 停顿。 |
以下列出了 QZDB 与业界主流二进制 IP 格式设计的客观对比:
| 格式分类 | 检索时间复杂度 | 数据结构体积 | 核心检索树与数据机制 | QZDB 的技术优化点 |
|---|---|---|---|---|
| 通用嵌套结构树格式 (.mmdb) | O(W) (需加上反序列化开销) |
较大 (含元数据 Key-Value 冗余) |
经典二进制 Trie;叶子指向嵌套 Map/List 数据区 | QZDB 首阶段快速跳级 + 零分配。IPv4 预读 16-bit 跳过前 16 层;叶子基于 Schema 物理偏移,堆内存零分配。 |
| 扁平区间二分格式 (.bin) | O(log N) (基于多轮二分匹配) |
中等 (需存储完整起止 IP 范围) |
已排序起止范围二分检索;辅以前缀索引缓存 | QZDB 的 Trie 压缩与短路径检索。Trie 树结构天生善于压缩重叠段,平均检索路径大幅缩短。 |
| 分区向量索引格式 (.xdb) | O(log N) (局部向量二分) |
极小 (一般只索引部分核心地理字段) |
向量索引表 + 局部 B-Tree 区间检索 | QZDB 对全球超大数据集扩展更佳。采用全局 RowSchema 与双阶段树设计,能自适应承载从小体积到数行大规模全球网段数据的动态扩展。 |
| 专有前缀树格式 (.ipdb) | O(W) (多次树节点跳转) |
较小 (索引节点与偏移量较为紧凑) |
前缀节点位移 Trie 检索;索引与数据区分离 | QZDB 的多语种只读字符串池与完全免锁设计。多维字段在初始化后即建立只读内存视图,多线程并发检索无锁竞争。 |
📊 行业落地实践与成功案例白皮书
了解电商精准营销、游戏防作弊、金融反欺诈与 CDN 流量高并发调度的落地方案
