登录 注册
当前位置:主页 > 资源下载 > 13 > 高效查询纯真IP库lib-qqwry.zip下载

高效查询纯真IP库lib-qqwry.zip下载

  • 更新:2024-08-12 13:59:16
  • 大小:4.79MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Node.js - 前端
  • 格式:ZIP

资源介绍

lib-qqwry是一个高效查询纯真 IP 库(qqwry.dat)的模块。它是用 NodeJS 解析纯真 IP 库(QQwry.dat) ,支持 IP 段查询。为更好的字符转化效率,未使用iconv模块,直接使用gbk编码表文件。经过不断优化,相同环境下,单次查询速度从最初的0.6毫秒提升到现在的0.004毫秒。实现的功能1.通过IP地址或有效的IP数值,搜索IP地址对应的地理位置信息。2.搜索一个IP段的地理位置信息。3.IP地址与数值的互转。npm安装npm install lib-qqwry调用方法var qqwry = require('lib-qqwry').info(); //调用并初始化,普通机器初始需要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左右的内存.info(dataPath) IP库初始化dataPath : IP库路径,可选; //默认路径为data文件夹中(__dirname "/data/qqwry.dat");callback : 回调函数 //可在此时调用查询函数infoAsync(dataPath,callback) IP库初始化的异步方法info()的异步方法; 初始化需要70毫秒,以及占用9MB左右的内存,项目资源紧张可以异步初始化。//你可以这样 qqwry.info(); var ipL = qqwry.searchIP("202.103.102.10"); //也可以这样初始化,推荐; qqwry.infoAsync(function(){     var ipL = qqwry.searchIP("202.103.102.10"); });unInfo() 释放初始化后占用的资源info()的逆方法searchIP(IP) 单个IP查询IP : IP地址/IP数值 反回一个JSON对像;> qqwry.searchIP("255.255.255.255"); { ip: '255.255.255.255',   Country: '纯真网络',   Area: '2013年6月10日IP数据' }searchIPScope(beginIP,endIP) IP段查询beginIP : 启始IPendIP : 结束IP反回一个JSON对像数组;> qqwry.searchIPScope("0.0.0.0","1.0.0.0"); [ { begIP: '0.0.0.0',     endIP: '0.255.255.255',     Country: 'IANA保留地址',     Area: ' CZ88.NET' },   { begIP: '1.0.0.0',     endIP: '1.0.0.255',     Country: '澳大利亚',     Area: ' CZ88.NET' } ]searchIPScopeAsync(beginIP,endIP,callback) IP段查询的异步方法searchIPScope() 的异步方法,查询结果会以第一个参数的形式传给回调函数;DBUG(Bool) 调试模式开关,默认未启用DUBG模式会在控制台输出查询的关键信息,方便定位错误;var qqwry = require('lib-qqwry').DBUG().info(); //开启调试模式并初始化 qqrry.DBUG(false); //关闭调试模式;ipToInt(IP) IP地址转数值(静态方法)> qqwry.ipToInt("255.255.255.255") 4294967295intToIP(INT) 数值转IP地址(静态方法)> qqwry.intToIP(4294967295) '255.255.255.255'ipEndianChange(INT) 字节序转换(静态方法)按32位转换参数的字节序一些云平台的环境变量中IP信息可能是Little-Endian形式的数值;比如百度node.js环境中的 process.env.BAE_ENV_COOKIE_IP , 这时候就有用了;> qqwry.ipEndianChange(0x010000FF) 4278190081 //0xFF000001文档说明./data/qqwry.dat  默认IP库,可用最新IP库替换; 下载地址www.cz88.net./lib/qqwry.js  解析IP库的主文件;./lib/gbk.js  GBK编码表文件,从iconv-lite中找出来的,并增加了一个转码方法;./test/test.js  使用演示;./test/test_v.js  效率测试示例;效率测试文件 test_v.jsnode test_v.js 255.255.255.255 正常工作检查node test_v.js -1 单个查询效率测试node test_v.js -2 10次IP段查询效率测试 标签:libqqwry 分享 window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "2", "bdMiniList": [], "bdPic": "", "bdStyle": "1", "bdSize": "24" }, "share": {} }; with (document)0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' ~(-new Date() / 36e5)];\r\n \r\n \r\n \r\n \r\n \u8f6f\u4ef6\u9996\u9875\r\n \u8f6f\u4ef6\u4e0b\u8f7d\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\nwindow.changyan.api.config({\r\nappid: 'cysXjLKDf', conf: 'prod_33c27aefa42004c9b2c12a759c851039' });