lib-qqwry 高效查询纯真IP库

我要开发同款
匿名用户2015年05月22日
218阅读

技术信息

授权协议
BSD

作品详情

lib-qqwry是一个高效查询纯真IP库(qqwry.dat)的模块。它是用NodeJS解析纯真IP库(QQwry.dat),支持IP段查询。为更好的字符转化效率,未使用icov模块,直接使用gbk编码表文件。经过不断优化,相同环境下,单次查询速度从最初的0.6毫秒提升到现在的0.004毫秒。

实现的功能

1.通过IP地址或有效的IP数值,搜索IP地址对应的地理位置信息。2.搜索一个IP段的地理位置信息。3.IP地址与数值的互转。

pm安装pm istall lib-qqwry调用方法var qqwry = require('lib-qqwry').ifo(); //调用并初始化,普通机器初始需要70毫秒左右;var ipL = qqwry.searchIP("202.103.102.10"); //查询IP信息var ipLA = qqwry.searchIPScope("0.0.0.0","1.0.0.0");  //查询IP段信息API

标明的"静态方法"可以值接使用,无需初始化.初使化操作会将GBK编码表,IP库加载到内存中,以提高后续的查询效率,大概占用12M左右的内存.

ifo(dataPath)IP库初始化

dataPath:IP库路径,可选;//默认路径为data文件夹中(__dirame+"/data/qqwry.dat");callback:回调函数//可在此时调用查询函数

ifoAsyc(dataPath,callback)IP库初始化的异步方法

ifo()的异步方法;初始化需要70毫秒,以及占用9MB左右的内存,项目资源紧张可以异步初始化。

//你可以这样qqwry.ifo();var ipL = qqwry.searchIP("202.103.102.10");//也可以这样初始化,推荐;qqwry.ifoAsyc(fuctio(){    var ipL = qqwry.searchIP("202.103.102.10");});uIfo()释放初始化后占用的资源

ifo()的逆方法

searchIP(IP)单个IP查询

IP:IP地址/IP数值反回一个JSON对像;

> qqwry.searchIP("255.255.255.255");{ ip: '255.255.255.255',  Coutry: '纯真网络',  Area: '2013年6月10日IP数据' }searchIPScope(begiIP,edIP)IP段查询

begiIP:启始IPedIP:结束IP反回一个JSON对像数组;

> qqwry.searchIPScope("0.0.0.0","1.0.0.0");[ { begIP: '0.0.0.0',    edIP: '0.255.255.255',    Coutry: 'IANA保留地址',    Area: ' CZ88.NET' },  { begIP: '1.0.0.0',    edIP: '1.0.0.255',    Coutry: '澳大利亚',    Area: ' CZ88.NET' } ]searchIPScopeAsyc(begiIP,edIP,callback)IP段查询的异步方法

searchIPScope()的异步方法,查询结果会以第一个参数的形式传给回调函数;

DBUG(Bool)调试模式开关,默认未启用

DUBG模式会在控制台输出查询的关键信息,方便定位错误;

var qqwry = require('lib-qqwry').DBUG().ifo(); //开启调试模式并初始化qqrry.DBUG(false); //关闭调试模式;ipToIt(IP)IP地址转数值(静态方法)> qqwry.ipToIt("255.255.255.255")4294967295itToIP(INT)数值转IP地址(静态方法)> qqwry.itToIP(4294967295)'255.255.255.255'ipEdiaChage(INT)字节序转换(静态方法)

按32位转换参数的字节序一些云平台的环境变量中IP信息可能是Little-Edia形式的数值;比如百度ode.js环境中的process.ev.BAE_ENV_COOKIE_IP,这时候就有用了;

> qqwry.ipEdiaChage(0x010000FF)4278190081 //0xFF000001文档说明

./data/qqwry.dat 默认IP库,可用最新IP库替换;下载地址www.cz88.et

./lib/qqwry.js 解析IP库的主文件;

./lib/gbk.js GBK编码表文件,从icov-lite中找出来的,并增加了一个转码方法;

./test/test.js 使用演示;

./test/test_v.js 效率测试示例;

效率测试文件test_v.js

odetest_v.js255.255.255.255正常工作检查odetest_v.js-1单个查询效率测试odetest_v.js-210次IP段查询效率测试

功能介绍

lib-qqwry是一个高效查询纯真 IP 库(qqwry.dat)的模块。它是用 NodeJS 解析纯真 IP 库(QQwry.dat) ,支持 IP 段查询。为更好的字符转化效率,未使用ic...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论