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# ,