輸入: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:絕對偏移量
以上是我參考了網上各位大蝦的解釋后,根據自己的了解和感受,把這個問題再詳細的解釋一次,希望能給大家幫助。
附:本文圖片是參考的
12下一頁閱讀全文