当前位置:编程学习 > C#/ASP.NET >>

C#读取QQWry.Dat文件实现IP查询

 [csharp]
using System; 
 
using System.Collections.Generic; 
 
using System.Text; 
 
using System.IO; 
 
using System.Web; 
 
using System.Configuration; 
 
 
 
namespace BLL 
 

 
    public class IPLocationSearch 
 
    { 
 
        private static readonly QQWry qq = new QQWry(ConfigurationManager.AppSettings["ip"] + "qqwry.dat"); 
 
 
 
        public static IPLocation GetIPLocation(string ip) 
 
        { 
 
            return qq.SearchIPLocation(ip); 
 
        } 
 
    } 
 
 
 
    /*
 
    使用方法:
 
 
 
    例子:
 
    BDQQ.Data.QQWry qq=new BDQQ.Data.QQWry("d:\\QQWry.Dat");
 
    BDQQ.Data.IPLocation ip=qq.SearchIPLocation("127.0.0.1");//这里添写IP地址
 
    Console.WriteLine(ip.country);//国家
 
    Console.WriteLine(ip.area);//地区
 
    */ 
 
 
 
    //以下是类文件 
 
    //根据LumaQQ改写而成. 
 
 
 
    /**/ 
 
    ///<summary> 
 
    /// QQWry 的摘要说明。 
 
    ///</summary> 
 
    public class QQWry 
 
    { 
 
        //第一种模式 
 
        #region 第一种模式 
 
        /**/ 
 
        ///<summary> 
 
        ///第一种模式 
 
        ///</summary> 
 
        #endregion 
 
        private const byte REDIRECT_MODE_1 = 0x01; 
 
 
 
        //第二种模式 
 
        #region 第二种模式 
 
        /**/ 
 
        ///<summary> 
 
        ///第二种模式 
 
        ///</summary> 
 
        #endregion 
 
        private const byte REDIRECT_MODE_2 = 0x02; 
 
 
 
        //每条记录长度 
 
        #region 每条记录长度 
 
        /**/ 
 
        ///<summary> 
 
        ///每条记录长度 
 
        ///</summary> 
 
        #endregion 
 
        private const int IP_RECORD_LENGTH = 7; 
 
 
 
        //数据库文件 
 
        #region 数据库文件 
 
        /**/ 
 
        ///<summary> 
 
        ///文件对象 
 
        ///</summary> 
 
        #endregion 
 
        private FileStream ipFile; 
 
 
 
        private const string unCountry = "未知国家"; 
 
        private const string unArea = "未知地区"; 
 
 
 
        //索引开始位置 
 
        #region 索引开始位置 
 
        /**/ 
 
        ///<summary> 
 
        ///索引开始位置 
 
        ///</summary> 
 
        #endregion 
 
        private long ipBegin; 
 
 
 
        //索引结束位置 
 
        #region 索引结束位置 
 
        /**/ 
 
        ///<summary> 
 
        ///索引结束位置 
 
        ///</summary> 
 
        #endregion 
 
        private long ipEnd; 
 
 
 
        //IP地址对象 
 
        #region  IP地址对象 
 
        /**/ 
 
        ///<summary> 
 
        /// IP对象 
 
        ///</summary> 
 
        #endregion 
 
        private IPLocation loc; 
 
 
 
        //存储文本内容 
 
        #region 存储文本内容 
 
        /**/ 
 
        ///<summary> 
 
        ///存储文本内容 
 
        ///</summary> 
 补充:软件开发 , C# ,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,