輸入:IP地址———>輸出:這個IP地址所在的國家,地名,有時甚至能精細到樓層。
網絡上的IP數(shù)據(jù)庫以純真版的最為流行,LumaQQ也采用了純真版IP數(shù)據(jù)庫做為IP查詢功能的基礎。不過關于其格式的文檔卻非常之少,后來終于在網上找到了幾份文檔,才知道其內幕,現(xiàn)在將我對Qqwry.dat的數(shù)據(jù)結構的理解展現(xiàn)出來。讓更多人明白它的內幕。
詳解解構:
1. qq.dat的數(shù)據(jù)存儲格式:
1.1三大塊:
文件頭;
記錄區(qū);
索引區(qū);
如圖:
![](/upload/20090210214226714.png)
1.2詳細解釋三大塊:
1.2.1第一塊:文件頭
文件頭是8個字節(jié)長度,前四個字節(jié)存儲了第一條索引的絕對地址,后四個字節(jié)存儲了最后一條索引的絕對地址。
格式如圖:
1.2.2第二塊:索引區(qū):
索引區(qū)格式如下圖:
![](/upload/2010-4/20100418191346911.gif)
先說一下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 [河北][唐山]
再來說一下索引區(qū)的存儲結構,它存儲了很多條索引,每條索引的格式為7個字節(jié),前四個字節(jié)表示的是一個IP段的起始字節(jié),后三個字節(jié)是鏈接到以這個起始IP開始的IP段內的所有IP記錄的地址,也就是說它是一個絕對地址,用于到鏈接到記錄區(qū)查詢國家,地區(qū)的數(shù)據(jù)。
1.2.3第三塊:記錄區(qū):
記錄區(qū)的數(shù)據(jù)格式不定,數(shù)據(jù)主要有以下類型:
A:結束IP
B:國家記錄 (以0x 00結束 )
C: 地區(qū)記錄 (以0x 00結束 )
D:標識字符:
E:絕對偏移量
以上是我參考了網上各位大蝦的解釋后,根據(jù)自己的了解和感受,把這個問題再詳細的解釋一次,希望能給大家?guī)椭?/FONT>
附:本文圖片是參考的
12下一頁閱讀全文