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;
}