lib-qqwry v1.0 发布 nodejs解析纯真IP库(qqwry.dat)
lib-qqwry是當初學習node時用來練手的一個模塊,用來解析純真IP庫的
現在發一個v1.0版本彌補我當時稚嫩的代碼.
意外收獲是,整理代碼后發現,相比v0.x版本 急速模式下的效率提升大概20%;
但 v1.0 相比 v0.x 有很大改動,并不兼容之前的版本,所以升級碰到問題的同學需要好好了解一下.
1.初始化
v0.x
初使化的初衷是讓用戶可以使用指定版本的IP庫文件, 在最合適的時候把IP庫加載到內存中進行高速查詢;
v1.0
v1.0改變了程序結構,實現方式; 不將IP庫加載到內存也可進行查詢,只是效率相對較差(ssd大概10倍,HHD大概五十倍以上,主要看硬盤)
v1.0的初始化方法為libqqwry.init(speed,dataPath) speed 參數為是否開啟急速模式(就是加載IP庫到內存),dataPath參數可以指定IP庫;
其實質為實例化一個Qqwry類,所以要賦值給一個變量:
var libqqwry = require('lib-qqwry');
var qqwry = libqqwry.init(); //使用默認IP庫,未開啟急速模式的解析器。
// var qqwry = libqqwry(); //可以這樣初始化,好上一行代碼功能一樣
var qqwry1 = libqqwry.init(true,"/data/qqwry.dat"); //使用指定IP庫,并開啟急速模式的解析器。
2.查詢
查詢人API基本沒變,v1.0 去掉了searchIPScopeAsync 整合到了searchIPScope(beginIP,endIP,callback) 形式;
不傳callback為同步查詢,傳了就變為異步查詢,CPS風格;
要注意的是 callback 變為了標準CPS風格,第一個參數為錯誤,
v0.x searchIPScopeAsync(beginIP,endIP,callback) , callback(data)
v1.0 searchIPScope(beginIP,endIP,callback) , callback(err,data)
完整的demo:
var libqqwry = require('lib-qqwry');
var qqwry = libqqwry.init();
qqwry.speed(); //若初始化時沒有啟用急速模式,可以這樣啟用;
var ip1 = qqwry.searchIP("202.103.102.10"); //查詢IP信息
var ips = qqwry.searchIPScope("0.0.0.0","1.0.0.0"); //查詢IP段信息
//異步查詢IP段信息
qqwry.searchIPScope("0.0.0.0","1.0.0.0",function(err,iparr){
console.log(iparr);
});
更詳細改動請移步項目主頁:https://github.com/cnwhy/lib-qqwry
總結
以上是生活随笔為你收集整理的lib-qqwry v1.0 发布 nodejs解析纯真IP库(qqwry.dat)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 低错合集
- 下一篇: CTF中常见Web源码泄露总结