qqwry、ipwry都是cnss(http://blog.csdn.net/cnss/article/details/136069)出品,终于找到了源码,下载地址:http://download.csdn.net/detail/lgh1992314/6564157

http://download.csdn.net/detail/lgh1992314/6564163

简单实现下查询操作:

ipsearcher.h

#ifndef IPSEARCHER_H
#define IPSEARCHER_H #pragma comment(lib, "ipsearcher.lib") extern "C"
{
void* __cdecl _GetAddress(const char *IPstr); //获取地址 void* __cdecl GetAddressInt(unsigned int ip); //获取地址 bool __cdecl Reload(); //重新加载ipwry.dat unsigned int __cdecl IPCount(); //返回有多少条IP char* __cdecl DateTime(); //返回数据生成的日期时间
}; #endif // IPSEARCHER_H

test.cpp

#include <iostream>
#include <string>
#include "ipsearcher.h"
using namespace std;
#pragma comment(lib, "ipsearcher.lib") inline unsigned int str2ip(const char *lp)
{
unsigned int ret = 0;
unsigned char now = 0; while(*lp)
{
if('.' == *lp)
{
ret = 256 * ret + now;
now = 0;
}
else
now = 10 * now + *lp - '0';
++lp;
}
ret = 256 * ret + now; return ret;
} int main(void)
{
cout <<"IPwry:存在" << IPCount() << "条记录" << endl;
cout << "更新时间:" << DateTime() << endl;
char **pstr = NULL;
string str;
while (cin >> str)
{
//pstr = (char**)_GetAddress(str.c_str());
pstr = (char **)GetAddressInt(str2ip(str.c_str()));
cout << pstr[0] << pstr[1] << endl;
}
return 0;
}

ipwry源码的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  2. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  3. 【原】FMDB源码阅读(三)

    [原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...

  4. 从源码看Azkaban作业流下发过程

    上一篇零散地罗列了看源码时记录的一些类的信息,这篇完整介绍一个作业流在Azkaban中的执行过程,希望可以帮助刚刚接手Azkaban相关工作的开发.测试. 一.Azkaban简介 Azkaban作为开 ...

  5. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  7. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  8. SDWebImage源码解读之SDWebImageDownloaderOperation

    第七篇 前言 本篇文章主要讲解下载操作的相关知识,SDWebImageDownloaderOperation的主要任务是把一张图片从服务器下载到内存中.下载数据并不难,如何对下载这一系列的任务进行设计 ...

  9. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

随机推荐

  1. owa部署

    新建一台win server 2012(注意如果是2008要补丁) 配置静态ip DNS指向ad域的ip 测试: ping 下ad域的域名,是通的继续 把本机加入到ad域 重启下 用admin登陆: ...

  2. CS系列(一):Cobalt Strike初体验

    0X01 环境准备 Cobalt Strike安装包(链接:https://pan.baidu.com/s/1wCHJcJrF6H0wUCdetz3Xjg 提取码:rjuj) Cobalt Strik ...

  3. Web及网络基础学习(一)

    ---恢复内容开始--- 2019.10.16 1.TCP.IP分层  应用层.网络层.传输层.数据链路层 2.各层讲解 应用层 决定了向用户提供应用服务时通信的活动.例如FTP(File Trans ...

  4. 基于C#的机器学习--垃圾邮件过滤

    在这一章,我们将建立一个垃圾邮件过滤分类模型.我们将使用一个包含垃圾邮件和非垃圾邮件的原始电子邮件数据集,并使用它来训练我们的ML模型.我们将开始遵循上一章讨论的开发ML模型的步骤.这将帮助我们理解工 ...

  5. 微信授权流程和JSSDK调用流程

    概念理解 业务域名:当前业务使用的是哪个网站,好处:设置业务域名后,在微信内访问该域名下页面时,不会被重新排版.不出现“防欺诈盗号,请误支付或输入qq密码”的提示,微信认为该域名是安全的,客户也不觉得 ...

  6. Babel+vscode实现APICloud开发中兼容ES6及以上代码

    本文出自APICloud官方论坛, 感谢论坛版主 penghuoyan 的分享.   使用APICloud开发时,考虑到兼容问题一直使用ES5开发,时间越久感觉越落后,整理了一个兼容ES6的开发环境, ...

  7. Vs中提交了代码但是不想推送到Git中

    1:首先就是我fix code 是要提交上去的,所以我就开始提交呢,但是,一看提交后,还没有推送到git就是现在下面的这个状态 上面这个是==> 这是先新增的文件,第一步.但是第一步就差推送了, ...

  8. day6 云道页面 知识点梳理(1)

    关于块级元素.行内元素.行内块元素的梳理 (1)块级元素 特点:   a.可以设置宽高,行高,外边距和内边距   b.块级元素会独占一行    c.宽度默认是容器的100%    d.可以容纳内联元素 ...

  9. Jenkins Job构建

    Jenkins job介绍 ​ Jenkins Freestyle与Pipeline Job区别 ​ ​ Jenkins Job构建配置 一 .环境准备 1.配置Jenkins server本地Git ...

  10. 使用log4j把日志写到mysql数据库

    log4j可以支持将log输出到文件,数据库,甚至远程服务器,本教程以mysql数据库为例来讲解: 作者:Jesai 没有伞的孩子,只能光脚奔跑! 1.数据库设计 数据库表 表4-1日志表(log) ...