qqwry.dat的数据结构图文解释第1/2页

输入:IP地址———>输出:这个IP地址所在的国家,地名,有时甚至能精细到楼层。

网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础。不过关于其格式的文档却非常之少,后来终于在网上找到了几份文档,才知道其内幕,现在将我对Qqwry.dat的数据结构的理解展现出来。让更多人明白它的内幕。

详解解构:

1.         qq.dat的数据存储格式:

1.1三大块:

文件头;

记录区;

索引区;

如图:

1.2详细解释三大块:

1.2.1第一块:文件头

文件头是8个字节长度,前四个字节存储了第一条索引的绝对地址,后四个字节存储了最后一条索引的绝对地址。

格式如图:

1.2.2第二块:索引区:

索引区格式如下图:

先说一下IP地址的起始IP和结束IP。例如:中国,美国,英国每个国家都分配有不同的IP段,IP段就是由起始IP和结束IP组成,从起始IP到结束IP内的所有IP就组成了我们所说的IP段。比如:

010.018.132.000 010.018.132.255 [河北][承德169用户]
010.018.160.000 010.018.255.255 [河北][唐山]

再来说一下索引区的存储结构,它存储了很多条索引,每条索引的格式为7个字节,前四个字节表示的是一个IP段的起始字节,后三个字节是链接到以这个起始IP开始的IP段内的所有IP记录的地址,也就是说它是一个绝对地址,用于到链接到记录区查询国家,地区的数据。

1.2.3第三块:记录区:

记录区的数据格式不定,数据主要有以下类型:

A:结束IP

B:国家记录 (以0x 00结束 )

C: 地区记录 (以0x 00结束 )

D:标识字符:

E:绝对偏移量

以上是我参考了网上各位大虾的解释后,根据自己的了解和感受,把这个问题再详细的解释一次,希望能给大家帮助。

附:本文图片是参考的

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • qqwry.dat的数据结构图文解释第1/2页

    输入:IP地址--->输出:这个IP地址所在的国家,地名,有时甚至能精细到楼层. 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上找到了几份文档,才知道其内幕,现在将我对Qqwry.dat的数据结构的理解展现出来.让更多人明白它的内幕. 详解解构: 1.         qq.dat的数据存储格式: 1.1三大块: 文件头: 记录区: 索引区: 如图: 1.2详细解释三大块: 1.2.1第一块:文件头

  • PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)

    如下所示: <?php $data = '254.254.254.254'; echo ip2long($data); function getIP() { if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); elseif(getenv

  • php读取qqwry.dat ip地址定位文件的类实例代码

    实例如下: <?php // +---------------------------------------------------------------------- // | // +---------------------------------------------------------------------- // | // +---------------------------------------------------------------------- cla

  • C#读取QQ纯真IP数据库QQWry.Dat的代码

    纯真版QQ IP数据库 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Web; using System.Configuration; namespace BLL { public class IPLocationSearch { private static readonly QQWry qq = new QQWry(Conf

  • 快速将珊瑚虫IP数据库转MS SQL2005的图文教程第1/2页

    首先需要准备: 最新的珊瑚虫IP数据库 http://update.cz88.net/soft/qqwry.rar Microsoft Office Access 2003 EiditPlus MS SQL2005 1.然后打开珊瑚虫IP数据库自带的 ShowIP.exe,选择解压,另存一个TXT文件: 2.用EiditPlus打开这个文本拖动到最后几行,删除多余的东西(千万别试图用默认的文本编辑器打开,内存小的话你会死的很惨): 3.打开Access(为什么不直接到SQL里面导入数据呢?因为会

  • 多种型号的ADSL路由设置方法图文教程第1/2页

    中兴831adsl modem 如何设置831:     先要把831的内置软件刷到2.79版本,可www.zte.com.cn下载(如何刷在说明里面) 831出厂设置的以太网口IP地址是192.168.1.1,为了能用telnet访问到831,我们现在先把一台电脑的地址设置为192.168.1.*, 使用ping 192.168.1.1 看看能不能访问到831,没问题的话继续,在DOS模式下打入telnet 192.168.1.1,如果你刚刷好软件,是有密码的,原厂密码是adsl831接着我们

  • Discuz!5.0升级Discuz5.5的图文教程第1/2页

    Discuz!5.5 正式版即将发布,相信大家很想把自己的 Discuz!5.0 论坛升级为 Discuz!5.5 ,下面我就为大家详细讲解一下 Discuz!5.0=>Discuz!5.5 的升级过程. 下面按三个部分为大家讲解: (一)升级前的准备    1.下载正式版 Discuz!5.5 到本地或服务器上,如图 1 所示: 1.jpg (38.71 KB) 2007-3-9 10:06 注:这里需要注意下载跟您原来的论坛一样字符集的版本,比如您原来用的是 GBK版的Discuz!5.0

  • 二十分钟 教你Ruby快速入门 图文教程第1/4页

    突然发现,ruby也不错,我有点打算想学下了介绍 这是一个短小的Ruby入门,完全读完只需20分钟.这里假设读者已经安装了Ruby,如果你没有安装的话,请在阅读文前访问Ruby官方网站进行下载并安装. 交互式的Ruby 打开IRB(交互式Ruby外壳): 如果你使用Mac OS X,那么请打开终端窗口输入irb: 如果你使用Linux,那么请打开shell输入irb: 如果你使用windows,那么请在开始菜单中找到Ruby->fxri,并执行它. Ok,在打开IRB之后,在其中输入"He

  • 攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍第1/2页

    CakePHP框架首页: http://www.cakephp.org/ 下载后导入工程中,目录结构如下图(使用版本:1.1.19.6305) 搭建PHP环境,这里使用了AppServ2.5.9. 下载主页 http://www.appservnetwork.com/ MySQL中新建数据库blog,并运行如下SQL文建表. /**//* First, create our posts table: */CREATE TABLE posts (    id INT UNSIGNED AUTO_I

  • 手把手教你组装电脑的图文教程第1/2页

    应该没有人一开始就什么都会,每个人都有刚入门的时候,自己组装电脑其实是蛮有趣的事情,尤其是组装的过程,把一些零组件组合在一起, 插电后等待开机B一声时的感动.记得15年前为了是玩游戏不用一直换软碟片, 第一次买的零组件是一颗20MB的Seagate硬碟,边摸边看书,也莫名的装好且格式化,看着吞食天地在换地图时没有一点儿停顿, 差点没感动到眼泪掉下来,也开始了硬体DIY的不归路. 可能只是比较主观的看法,DIY市场似乎有越来越走弱的感觉, 大者恒大一线大厂不断以价格战打压二.三线,集中商圈好象也没

随机推荐