溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何讀取純真IP數(shù)據(jù)庫(kù)的公用組件接口QQWry.NET

發(fā)布時(shí)間:2021-10-12 13:57:26 來(lái)源:億速云 閱讀:153 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹如何讀取純真IP數(shù)據(jù)庫(kù)的公用組件接口QQWry.NET,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

這是一個(gè)讀取純真IP數(shù)據(jù)庫(kù)的公用組件接口,我是通過(guò)luma的《純真IP數(shù)據(jù)庫(kù)格式詳解》了解了純真IP數(shù)據(jù)庫(kù)數(shù)據(jù)格式,并且基于網(wǎng)絡(luò)上的一個(gè)IPLocation.dll源碼的基礎(chǔ)改編而來(lái)。我為什么要改編這個(gè)組件呢?因?yàn)槲铱吹竭@個(gè)組件在使用過(guò)程中,每次都要打開(kāi)文件流,并且整個(gè)接口使用靜態(tài)的屬性。并不適合Web環(huán)境下,多線程并發(fā)查詢的需求,并且在性能上也不是最優(yōu)。有了luma的格式詳解,和現(xiàn)有的IPLocation.dll的源碼,使我的工作變得異常的簡(jiǎn)單。出現(xiàn)的一個(gè)小錯(cuò)誤,也是經(jīng)過(guò)一次調(diào)試后就解決了。性能較IPLocation.dll也有較大的提高,雖然只有短短的幾百行代碼,雖然網(wǎng)上也有很多類似的代碼,但繼承我一貫的做法,我仍然把這個(gè)組件開(kāi)源貢獻(xiàn)出來(lái)。下面是一些接口使用的介紹:

代碼如下:


QQWry.NET.QQWryLocator qqWry = new QQWry.NET.QQWryLocator("qqwry.dat");//初始化數(shù)據(jù)庫(kù)文件,并獲得IP記錄數(shù),通過(guò)Count可以獲得
QQWry.NET.IPLocation ip = qqWry.Query("120.67.217.7"); //查詢一個(gè)IP地址
Console.WriteLine("{0} {1} {2}", ip.IP, ip.Country, ip.Local);


以下是與IPLocation.dll在性能上的對(duì)比代碼:

復(fù)制代碼 代碼如下:


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 花了{(lán)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 花了{(lán)0} ms", stopwatch.ElapsedMilliseconds);


性能比較結(jié)果:
如何讀取純真IP數(shù)據(jù)庫(kù)的公用組件接口QQWry.NET 

以上是“如何讀取純真IP數(shù)據(jù)庫(kù)的公用組件接口QQWry.NET”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI