国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

讀取純真IP數據庫的公用組件接口QQWry.NET

2024-07-10 12:45:11
字體:
來源:轉載
供稿:網友
這是一個讀取純真IP數據庫的公用組件接口,我是通過luma的《純真IP數據庫格式詳解》了解了純真IP數據庫數據格式,并且基于網絡上的一個IPLocation.dll源碼的基礎改編而來。我為什么要改編這個組件呢?因為我看到這個組件在使用過程中,每次都要打開文件流,并且整個接口使用靜態的屬性。并不適合Web環境下,多線程并發查詢的需求,并且在性能上也不是最優。有了luma的格式詳解,和現有的IPLocation.dll的源碼,使我的工作變得異常的簡單。出現的一個小錯誤,也是經過一次調試后就解決了。性能較IPLocation.dll也有較大的提高,雖然只有短短的幾百行代碼,雖然網上也有很多類似的代碼,但繼承我一貫的做法,我仍然把這個組件開源貢獻出來。下面是一些接口使用的介紹:
代碼如下:
QQWry.NET.QQWryLocator qqWry = new QQWry.NET.QQWryLocator("qqwry.dat");//初始化數據庫文件,并獲得IP記錄數,通過Count可以獲得
QQWry.NET.IPLocation ip = qqWry.Query("120.67.217.7"); //查詢一個IP地址
Console.WriteLine("{0} {1} {2}", ip.IP, ip.Country, ip.Local);

以下是與IPLocation.dll在性能上的對比代碼:
代碼如下:
Stopwatch stopwatch = new Stopwatch();
List<string> ips = new List<string> { "218.5.3.128", "120.67.217.7", "125.78.67.175", "220.250.64.23", "218.5.3.128", "120.67.217.7", "125.78.67.175", "220.250.64.23" };
stopwatch.Start();
for (int i = 0; i < 100; i++)
{
foreach (string item in ips)
{
ip = qqWry.Query(item);
// Console.WriteLine("{0} {1} {2}", ip.IP, ip.Country, ip.Local);
}
}
stopwatch.Stop();
Console.WriteLine("QQWryLocator 花了{0} ms", stopwatch.ElapsedMilliseconds);
stopwatch.Reset();
stopwatch.Start();
for (int i = 0; i < 100; i++)
{
foreach (string item in ips)
{
string s = IPLocation.IPLocation.IPLocate("qqwry.dat", item);
// Console.WriteLine(s);
}
}
stopwatch.Stop();
Console.WriteLine("IPLocation 花了{0} ms", stopwatch.ElapsedMilliseconds);

性能比較結果:
 
源碼和示例下載
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平安县| 江达县| 安远县| 岳池县| 荃湾区| 克山县| 龙山县| 登封市| 论坛| 哈密市| 衡阳县| 河南省| 清远市| 登封市| 偏关县| 曲水县| 眉山市| 潢川县| 财经| 城步| 郑州市| 韩城市| 保靖县| 佛冈县| 儋州市| 泸水县| 建水县| 竹北市| 哈尔滨市| 正镶白旗| 曲阜市| 布尔津县| 鞍山市| 依兰县| 汽车| 股票| 焦作市| 临清市| 沅陵县| 新晃| 盘山县|