当前位置:有风信息港IT学院编程技术JAVA → 纯真IP数据库格式详解

纯真IP数据库格式详解

减小字体 增大字体 作者:有风IT学院  来源:有风信息港  发布时间:2008-1-13 9:35:36
  Luma, 清华大学

  修改日期: 2005/01/14

  Note: 在此感谢纯真IP数据库作者金狐和那唯一一份文档的作者。

  修改历史:

  2005-01-14 修改了原来一些表达不清和错误的地方

  -----------------------------

  自从有了IP数据库这种东西,QQ外挂的显示IP功能也随之而生,本人见识颇窄,是否还有其他应用不得而知,不过,IP数据库确实是个不错的东西。如今网络上最流行的IP数据库我想应该是纯真版的(说错了也不要扁我),迄今为止其IP记录条数已经接近30000,对于有些IP甚至能精确到楼层,不亦快哉。2004年4、5月间,正逢LumaQQ破土动工,为了加上这个人人都喜欢,但是好像人人都不知道为什么喜欢的显IP功能,我也采用了纯真版IP数据库,它的优点是记录多,查询速度快,它只用一个文件QQWry.dat就包含了所有记录,方便嵌入到其他程序中,也方便升级。

  基本结构

    QQWry.dat文件在结构上分为3块:文件头,记录区,索引区。一般我们要查找IP时,先在索引区查找记录偏移,然后再到记录区读出信息。由于记录区的记录是不定长的,所以直接在记录区中搜索是不可能的。由于记录数比较多,如果我们遍历索引区也会是有点慢的,一般来说,我们可以用二分查找法搜索索引区,其速度比遍历索引区快若干数量级。图1是QQWry.dat的文件结构图。

  



    
javascript:window.open(this.src);" style="cursor: pointer;"/>
(图2)

    



    要注意的是,QQWry.dat里面全部采用了little-endian字节序

  

      一. 了解文件头

    QQWry.dat的文件头只有8个字节,其结构非常简单,首四个字节是第一条索引的绝对偏移,后四个字节是最后一条索引的绝对偏移。

  



  
推荐文章:搞笑之可爱水果表情  清新素洁水仙壁纸集


  

[1] [2] [3] [4]  下一页