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)的更多相关文章

  1. qqwry - 纯真ip库的golang服务

    qqwry 纯真 IP 库的一个服务.通过http提供一个ip地址归属地查询支持 软件介绍 我们大家做网站的时候,都会需要将用户的IP地址转换为归属地址功能,而之前的作法大都是从硬盘的数据文件中读取, ...

  2. 亿能测试白盒安全测试模板V1.0发布

    亿能测试白盒安全测试模板V1.0发布http://automationqa.com/forum.php?mod=viewthread&tid=2911&fromuid=21

  3. RDIFramework.NET平台代码生成器V1.0发布(提供下载)

    RDIFramework.NET平台代码生成器V1.0发布(提供下载)   RDIFramework.NET(.NET快速开发整合框架)框架做为信息化系统快速开发.整合的框架,其目的一至是给用户和开发 ...

  4. 启明星手机版安卓android会议室预定系统 V1.0发布

    启明星手机版会议室预定系统 V1.0发布 在手机里输入 http://www.dotnetcms.org/e4.apk 或者扫描二维码下载 用户打开系统,可以实时查看所有会议室状态 点击会议室名称,可 ...

  5. 纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat)

    纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat) 转载自:http://blog.cafeboy.org/2011/02/25/qqwry-to-ipwry/ ht ...

  6. Java使用纯真IP库获取IP对应省份和城市

    原文:http://blog.csdn.net/chwshuang/article/details/78027873?locationNum=10&fps=1 Java使用纯真IP库获取IP对 ...

  7. 转载纯真ip库

    http://blog.csdn.net/clin003/archive/2007/08/14/1743157.aspx 利用 QQWry.Dat 实现 IP 地址高效检索(PHP) 根据 LumaQ ...

  8. 使用纯真IP库获取用户端地理位置信息

    引言 在一些电商类或者引流类的网站中经常会有获取用户地理位置信息的需求,下面我分享一个用纯真IP库获取用户地理位置信息的方案. 正文 第一步:本文的方案是基于纯真IP库的,所以首先要去下载最新的纯真I ...

  9. PHP Swoole 基于纯真IP库根据IP匹配城市

    把纯真IP库读到内存,纯真IP库本来就是有序的,然后每次请求二分查找就行,44WIP查找十几次就搞定了 dispatch_mode最好写3,不然做服务的时候,会导致进程任务分配不均匀. max_req ...

随机推荐

  1. 【转】eclipse下使用hibernate tools实现hibernate逆向工程

    一.基本环境 Eclipse 3.6 AppFuse Struts2 2.1.0 JBoss Hibernate Tools 3.4.0 二.JBoss Hibernate Tools 3.4.0安装 ...

  2. Netsharp快速入门(之3) 基础档案(之B 实体建模 新建项目)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 3.3     创建业务模型 3.3.1  新建项目 1.打开业务模型 2.打开业务模型后,在工具栏上选择操作-新增项目分类,标识这 ...

  3. MySQL用程序代码建表(1)

    一.创建表格代码格式 create table <表名>( <列名> <数据类型及长度> [not null], <列名> <数据类型及长度> ...

  4. Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 模拟

    题目链接: http://codeforces.com/contest/670/problem/E 题解: 用STL的list和stack模拟的,没想到跑的还挺快. 代码: #include<i ...

  5. 【Lua】Lua中__index与元表(转)

    转载于:http://blog.csdn.net/xocoder/article/details/9028347 Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如 ...

  6. 【BZOJ】【1096】【ZJOI2007】仓库建设

    DP/斜率优化 Orz Hzwer 八中好像挂了……明天再提交吧…… UPD:2015-03-12 17:24:43 算了,毕竟是第一道题,还是仔细写一下斜率优化的过程吧.(部分引自Hzwer的题解) ...

  7. WinHex分析PE格式(2)&& 如何手动添加区段并运行区段

    由于这次文章内容比较多 所以写成DOC文档 为了复习所学的知识,我在原本的软件里试者手动加入区段 ,并写给大家分享,还试试者用LordPE加区段发现竟然失败了, 还是自己动手比较实在,完美运行. 利用 ...

  8. Spring中自动装配(转)

    Spring中有四种自动装配类型,分别为:byName,byType,constructor,autodetect,下面来分别介绍一下这些是如何自动装配的 <bean id="foo& ...

  9. ajax原理总结附简单实例及其优点

    在工作中用了Ajax N多次了,也看过一些相关方面的书籍,也算是认识了它,但是一直没有认真总结和整理过相关的东东,失败! 近有闲情,将之总结如下: [名称] Ajax是Asynchronous Jav ...

  10. JDK各个版本下载页面

    http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 需 ...