日期:2014-05-16 浏览次数:20689 次
整理硬盘看到以前写的纯真ip数据库(QQWry.Dat)查询代码,觉得没有什么价值了,当时学习C语言的文件操作时自己的一个练习而已,现在公布出来希望对学习C语言的人有所参考价值.
纯真ip数据库(QQWry.Dat)是当年很多修改版QQ使用的显示对方所在地的ip数据库,该数据库由纯真维护着,ip地址所在地是许多网友提交才发展那么强大的,参考lumaqq的一些资料会有帮助:
纯真ip地址查询java代码
lumaqq文档整理
好了不多说了代码如下:
MakeFile
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
CC????? = gcc.exe
BIN???? = qqwry.exe
WINDRES = windres.exe
RES???? = resource.o
OBJ???? = main.o qqwry.o localIp.o $(RES)
# D:\MinGW\lib\libwsock32.a
LIBS =? -L"D:/MinGW/lib"-lwsock32
RM????? = del -f
?
$(BIN): $(OBJ)
????$(CC) -o $(BIN) $(OBJ) $(RES) $(LIBS)
?
main.o: main.h qqwry.h
qqwry.o: qqwry.h localIp.h
localIp.o: localIp.h
?
$(RES): resource.rc my_icon.ico
????$(WINDRES) -o $(RES) resource.rc
?
.PHONY:clean
clean:
????$(RM) $(BIN) $(OBJ) *~
|
main.c
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/**
?*
?* 增加了解压数据库功能,包括
?* void readIpString(char *string);
?* void exportData(char *fileName);
?*
?* @author http://www.heui.org
?* @version 0.6
?*
?*/
?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "qqwry.h"
?
FILE*ipFile???????? = NULL; //ip文件指针
unsigned longipBegin? = 0; //ip开始地址
unsigned longipEnd??? = 0; //ip结束地址
unsigned longipSum??? = 0; //ip总数
/**
?* main()
?*/
intmain(intargc, char**argv)
{
????ipFile = fopen("QQWry.Dat", "rb");
????if(!ipFile){
????????puts("QQWry.Dat文件丢失");
????????exit(1);
????}
????unsigned longdata[2];
????fread(data, 1, 8, ipFile);
????ipBegin = data[0];
????ipEnd = data[1];
????ipSum = ((data[1]-data[0])/RECORD_LENGTH +1);
?
????checkCmdLine(argc, argv);//处理命令行参数
?
????fclose(ipFile);
????return0;
}
|
qqwry.h
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#ifndef QQWRY_H
#define QQWRY_H
?
#define RECORD_LENGTH 0x07? //ip记录长度
#define AREA_FOLLOWED 0X01? //模式1
#define NO_AREA?????? 0x02? //模式2
?
typedefstructipInfo<
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|