手机版

读取Innocent IP数据库的通用组件接口QQWry.NET

时间:2021-11-18 来源:互联网 编辑:宝哥软件园 浏览:

这是读取纯IP数据库的常用组件接口。我通过luma的《纯真IP数据库格式详解》学习了纯IP数据库的数据格式,并根据网络上的一个IPLocation.dll源代码进行了改编。为什么要适配这个组件?因为我看到在使用这个组件的过程中,文件流总是打开的,整个接口使用静态属性。它不适合Web环境下多线程并发查询的需求,性能也不是最优的。有了对亮度格式和IPLocation.dll现有源代码的详细解释,我的工作变得极其简单。出现一个小错误,经过调试后得到解决。与IPLocation.dll相比,性能也大大提高。虽然只有几百行代码,互联网上也有很多类似的代码,但我仍然通过继承我通常的做法,将这个组件贡献给开源。以下是部分界面的使用介绍:复制代码如下: qqry . net . QQ ry定位器QQ ry=new qqry . net . QQ ry定位器(' qqry . dat ');//初始化数据库文件,获取IP记录数。通过计数,可以得到qqry.net.ip位置IP=qqry . query(' 120 . 67 . 217 . 7 ');//查找一个IP地址console.writeline ('{0} {1} {2} ',ip.ip,ip.country,IP . local);以下是用IPLocation.dll的性能对比代码:复制代码为:秒表秒表=新秒表();Liststring IPS=new Liststring { ' 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 ' };秒表。start();for(int I=0;i 100I){ foreach(IPS中的字符串项){ ip=qqWry。查询(项);//控制台。WriteLine('{0} {1} {2} ',ip。ip,IP。国家,ip。本地);} }秒表。stop();控制台。writeline ('qqqry定位器用了{0}毫秒),秒表。经过的毫秒数);秒表。reset();秒表。start();for(int I=0;i 100I){ foreach(IPS中的字符串项){ string s=IPLocation。IPLocation.IPLocate('qqwry.dat ',item);//控制台。写线;} }秒表。stop();控制台。WriteLine('IPLocation用了{0}毫秒,秒表.流逝的毫秒数);绩效比较结果:

和示例下载。

版权声明:读取Innocent IP数据库的通用组件接口QQWry.NET是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。