Ip2region - 准确率99.9%的离线IP地址定位库
Ip2region体积小,包含了全部的IP,生成的数据库文件ip2region.db只有几MB,最小的版本只有1.5MB,随着数据的详细度增加数据库的大小也慢慢增大,目前还没超过8MB。
Ip2region查询速度快,全部的查询客户端单次查询都在0.x毫秒级别,内置了三种查询算法:
memory算法:整个数据库全部载入内存,单次查询都在0.1x毫秒内,C语言的客户端单次查询在0.00x毫秒级别。
binary算法:基于二分查找,基于ip2region.db文件,不需要载入内存,单次查询在0.x毫秒级别。
b-tree算法:基于btree算法,基于ip2region.db文件,不需要载入内存,单词查询在0.x毫秒级别,比binary算法更快。
其中,任何客户端的b-tree都比binary算法快,而memory算法总是最快的。
Ip2region提供了多查询客户端的支持,已经集成的客户端有:java、C#、php、c、python、nodejs、php 扩展 (php5和php7)、golang、rust、lua、lua_c, nginx 等等:
我们以nodejs为例,首先安装:
npm install node-ip2region --save
在代码中使用:
const searcher = require('node-ip2region').create();
console.log(searcher.btreeSearchSync('112.11.2.12'))
//{ city: 1170, region: '中国|0|浙江省|嘉兴市|移动' }
网友回复