QQWry.dat 是純真 IP 數據庫的經典格式,廣泛用於 IP 地址歸屬地查詢。本文提供一個完整的 C# 類別 IPExport,可將該二進制數據庫解析並導出為可讀的文本文件。
namespace PPTech.ESP.Component
{
public class IPExport
{
// 私有字段:國家、地區、文件流、IP範圍等
// 構造函數
// 核心方法:SaveToText(string toFilePath, string fromFilePath)
// 輔助方法:IntToIP, GetCountry, GetFlagStr, GetStr
}
}
數據庫前 8 字節包含首條和末條記錄的起始偏移量,每條記錄固定 7 字節(4字節起始IP + 3字節國家/地區偏移)。
private string IntToIP(long ip_Int)
{
long seg1 = (ip_Int & 0xff000000) >> 24;
long seg2 = (ip_Int & 0x00ff0000) >> 16;
long seg3 = (ip_Int & 0x0000ff00) >> 8;
long seg4 = (ip_Int & 0x000000ff);
// 處理負數補碼...
return $"{seg1}.{seg2}.{seg3}.{seg4}";
}
IPExport exp = new IPExport();
string toFile = @"D:\Work\ip.txt";
string fromFile = @"E:\QQWry.Dat";
exp.SaveToText(toFile, fromFile);
System.IO, System.Text.Encoding