<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          lib-qqwry高效查詢純真IP庫

          聯(lián)合創(chuàng)作 · 2023-09-23 16:32

          lib-qqwry是一個高效查詢純真 IP 庫(qqwry.dat)的模塊。它是用 NodeJS 解析純真 IP 庫(QQwry.dat) ,支持 IP 段查詢。為更好的字符轉(zhuǎn)化效率,未使用iconv模塊,直接使用gbk編碼表文件。經(jīng)過不斷優(yōu)化,相同環(huán)境下,單次查詢速度從最初的0.6毫秒提升到現(xiàn)在的0.004毫秒。

          實現(xiàn)的功能

          1.通過IP地址或有效的IP數(shù)值,搜索IP地址對應(yīng)的地理位置信息。
          2.搜索一個IP段的地理位置信息。
          3.IP地址與數(shù)值的互轉(zhuǎn)。

          npm安裝

          npm install lib-qqwry

          調(diào)用方法

          var qqwry = require('lib-qqwry').info(); //調(diào)用并初始化,普通機(jī)器初始需要70毫秒左右;
          var ipL = qqwry.searchIP("202.103.102.10"); //查詢IP信息
          var ipLA = qqwry.searchIPScope("0.0.0.0","1.0.0.0");  //查詢IP段信息

          API

          標(biāo)明的"靜態(tài)方法"可以值接使用,無需初始化.
          初使化操作會將GBK編碼表,IP庫加載到內(nèi)存中,以提高后續(xù)的查詢效率,大概占用12M左右的內(nèi)存.

          info(dataPath) IP庫初始化

          dataPath : IP庫路徑,可選; //默認(rèn)路徑為data文件夾中(__dirname + "/data/qqwry.dat");
          callback : 回調(diào)函數(shù) //可在此時調(diào)用查詢函數(shù)

          infoAsync(dataPath,callback) IP庫初始化的異步方法

          info()的異步方法; 初始化需要70毫秒,以及占用9MB左右的內(nèi)存,項目資源緊張可以異步初始化。

          //你可以這樣
          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數(shù)值 反回一個JSON對像;

          > qqwry.searchIP("255.255.255.255");
          { ip: '255.255.255.255',
            Country: '純真網(wǎng)絡(luò)',
            Area: '2013年6月10日IP數(shù)據(jù)' }

          searchIPScope(beginIP,endIP) IP段查詢

          beginIP : 啟始IP
          endIP : 結(jié)束IP
          反回一個JSON對像數(shù)組;

          > 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() 的異步方法,查詢結(jié)果會以第一個參數(shù)的形式傳給回調(diào)函數(shù);

          DBUG(Bool) 調(diào)試模式開關(guān),默認(rèn)未啟用

          DUBG模式會在控制臺輸出查詢的關(guān)鍵信息,方便定位錯誤;

          var qqwry = require('lib-qqwry').DBUG().info(); //開啟調(diào)試模式并初始化
          qqrry.DBUG(false); //關(guān)閉調(diào)試模式;

          ipToInt(IP) IP地址轉(zhuǎn)數(shù)值(靜態(tài)方法)

          > qqwry.ipToInt("255.255.255.255")
          4294967295

          intToIP(INT) 數(shù)值轉(zhuǎn)IP地址(靜態(tài)方法)

          > qqwry.intToIP(4294967295)
          '255.255.255.255'

          ipEndianChange(INT) 字節(jié)序轉(zhuǎn)換(靜態(tài)方法)

          按32位轉(zhuǎn)換參數(shù)的字節(jié)序
          一些云平臺的環(huán)境變量中IP信息可能是Little-Endian形式的數(shù)值;
          比如百度node.js環(huán)境中的 process.env.BAE_ENV_COOKIE_IP , 這時候就有用了;

          > qqwry.ipEndianChange(0x010000FF)
          4278190081 //0xFF000001

          文檔說明

          1. ./data/qqwry.dat  默認(rèn)IP庫,可用最新IP庫替換; 下載地址www.cz88.net

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

          3. ./lib/gbk.js  GBK編碼表文件,從iconv-lite中找出來的,并增加了一個轉(zhuǎn)碼方法;

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

          5. ./test/test_v.js  效率測試示例;

          效率測試文件 test_v.js

          node test_v.js 255.255.255.255 正常工作檢查
          node test_v.js -1 單個查詢效率測試node test_v.js -2 10次IP段查詢效率測試


          瀏覽 28
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人毛片AAAAAA | 色丁香婷婷 | 玉米地一级婬片A片亮 | 九色蝌蚪9l视频蝌蚪9l视频 | 神马午夜精品 |