分享
 
 
 

QQwry.dat格式分析和查询IP位置的PHP程序

王朝php·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

以前的追捕数据库太大,而且很久没有更新了。

所以我想到利用QQwry.dat这个文件查询IP所在位置,QQwry.dat 在很多地方都能找到,一般看IP地址的QQ压缩包中都有。

但是没有任何相关格式资料。

我分析了这个文件的格式,目前如下结论:

格式如下:

A。文件头,共8字节

B。若干条记录的结束地址+国家和区域

C。按照从小到大排列的若干条起始地址+结束地址偏移,定长,7字节

D。所有的IP都是用4字节整数记录的,并且遵照Intel次序,高位在后,低位在前。

E。所有偏移量都是绝对偏移,就是从文件最开头计算。

F。除了文件头用了两个4字节偏移,其余偏移量都用3字节。

G。所有的偏移量也是低位在前,高位在后

H。采用了一些字符串压缩技术

1。文件头,共8字节

FirstStartIpOffset:4 第一个起始IP的绝对偏移

LastStartIpOffset:4 最后一个起始IP的绝对偏移

2。起始地址+结束地址偏移记录区

每条记录7字节,按照起始地址从小到大排列

StartIp:4 起始地址,整数形式的IP

EndIpOffset:3 结束地址绝对偏移

3。结束地址+国家+区域记录区

EndIP:4

国家+区域记录:不定长

4。国家+区域记录,有几种形式

4.1。

国家字符串,以 0x0 结束

区域字符串,以 0x0 结束

4.2。

Flag:1 标识取值: 0x1,后面没有Local记录

0x2,后面还有Local记录

sCountryOffset:3 实际的字符串要去这个偏移位置去找

LocalRec:不定长,可选 根据Flag取值而定。这个记录也类似Country,可能采用压缩

4.3 LocalRec结构一

flag:1 还不是十分了解这个flag含义,取值 0x1 or 0x2

sLocalOffset:3

4.4 LocalRec结构二

sLocal:不定长 普通的C风格字符串

注意:sCountryOffset指向的位置可能依然是4.2格式的,不知道为什么这样设计。

Flag取0x1时,sCountryOffset指向的位置可能是Flag为0x2,这时,LocalRec也在这里寻找。

现在不明白当记录Local的位置遇到0x2的标志意味着什么。

在qqwry.dat中,似乎存在一些错误。

个别的记录Local会被写为:

0x2,0x0,0x0,0x0

根据规则,应该到文件最开头去寻找,可是,文件最开头显然不是记录这些的。

我才学PHP不久,各位不要笑,你要能改进当然好,记得给我一份。

我参考了一些网上找到的代码,就不一一写出出处了。

说老实话,我很头疼PHP无法明确指定变量的类型。

比如,我想让某个数是无符号的整形,它很不听话,非要是带个负号,我只好尝试各种可能的写法..........

各位都是怎么处理类似的事情?

define('QQWRY' , $qqwry_root_path . 'QQwry.dat' ) ;function IpToInt($Ip) {

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有