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

时间: 2024-10-05 09:28:35

lib-qqwry v1.0 发布 nodejs解析纯真IP库(qqwry.dat)的相关文章

qqwry - 纯真ip库的golang服务

qqwry 纯真 IP 库的一个服务.通过http提供一个ip地址归属地查询支持 软件介绍 我们大家做网站的时候,都会需要将用户的IP地址转换为归属地址功能,而之前的作法大都是从硬盘的数据文件中读取,这样不太高效.我这次将纯真IP库直接加载到内存中,并以http服务的方式提供接口出来.这样方便自己项目中所有的程序都能方便的接口IP查询功能了. 安装 go安装 go get github.com/freshcn/qqwry 二进制包直接下载 https://github.com/freshcn/q

转载纯真ip库

http://blog.csdn.net/clin003/archive/2007/08/14/1743157.aspx 利用 QQWry.Dat 实现 IP 地址高效检索(PHP) 根据 LumaQQ 开发者文档中的纯真 IP 数据库格式详解,我编写了一个 PHP 的查询 IP 所在地区信息的类.在编写过程中发现纯真 IP 数据库格式详解中关于记录区的描述不是很全面,不过出入也不是很大,所以我没必要再写一份纯真 IP 数据库的格式说明了,大家感兴趣的话,读一读下面的代码应该就能看出来了.代码中

通过纯真IP库,查询出IP地址的归属地

原文:通过纯真IP库,查询出IP地址的归属地 源代码下载地址:http://www.zuidaima.com/share/1550463698422784.htm 项目的编码要设置为utf-8,否则有乱码

解析纯真IP地址库

一周以来,一直在做 IP地址库的解析.从调研到编码到优化,大概花了有七八天的时间.感觉很好玩.总结一下整个做的过程. 1.关于IP 地址库的解析方式 目前主要的解析方式有两种:通过API,或通过IP数据库. API方式很简单,目前国内大厂不少提供API接口,只要发送请求的IP,就能获得相应的地理位置.像BAT等等公司都提供IP查询接口.这种解析方式的好处在于,编码简单,一个请求获得数据,然后解析一下就好了(通常只是个json数据),而且不用维护数据库,对本地没有负担.但是缺点也挺明显的,首先是慢

js常用工具库XCLJsTool v1.0发布

最近有空,整了一个js的工具库,还没有正式用于项目中,自己也没有时间写测试用例,想了一下,还是贴出来给大家看看,如果有问题,请留言,非常感谢!项目我放在了github上面,会经常更新的,过段时间会发布一版! /** * 欢迎使用本程序,您可以任意修改.复制.分享本程序所有代码,只需要保留本注释即可,谢谢! * 项目地址:<span style="color:#ff0000;">https://github.com/xucongli1989/XCLJsTool</spa

hasura graphql-engine v1.0 发布了

好久没关注hasura graphql-engine 了,居然以及release 了,同时1.1.0 的beta 版本也发布了两个版本了 官方同时也提供了pro 版本,很不错,生产可用了,后边试用下新版本的功能 参考资料 https://github.com/hasura/graphql-engine/releases 原文地址:https://www.cnblogs.com/rongfengliang/p/12241101.html

图密 v1.0发布

本软件用于帮助管理个人密码,可有效解决在线或本地保存密码易泄露的问题,所有密码根据图片计算生成,具有以下特点:1.无需记忆任何密码,正确选择设定的图片文件即可解锁.2.密码并不保存在软件中,因此无泄露风险,即使设备丢失也不会导致密码被盗.3.根据相同文件计算获得的密码相同,误删软件或更换设备不会导致密码丢失. 软件同时发布了win8.1和wp8.1版,添加的记录可在两个版本间同步,android版也已发布,使用相同图片产生的密码在三个系统下完全相同.

Restful.Data v2.0发布,谢谢你们的支持和鼓励

v1.0发布后,承蒙各位博友们的热心关注,也给我不少意见和建议,在此我真诚的感谢 @冰麟轻武 等朋友,你们的支持和鼓励,是这个开源项目最大的推动力. v2.0在除了细枝末节外,在功能上主要做了一下更新: 1.实体类不再需要自己跟踪属性值变化: [Serializable] public class Person { [PrimaryKey, AutoIncrease] public virtual int Id { get; set; } public virtual string Name {

气瓶安全云充装V1.0.201604

    气瓶安全云平台     充装需求说明书     Ver:1.0 无锡乾元智能安全技术研究有限公司 更新日期:2016.04 目   录 第一部分 项目概述... 4 1.1背景.备注... 4 1.2关键词.术语解释... 4 1.3项目描述... 4 1.4保密与版权声明... 5 第二部分 项目详细要求... 5 2.1项目功能.性能要求... 5 2.2性能要求... 6 2.3登陆与注册... 8 2.3.1 登录... 8 2.3.2 注册... 8 2.4菜单功能... 10