·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> ASP.NET根据IP获取省市地址

ASP.NET根据IP获取省市地址

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net根据ip获取省市地址

1、在网站的跟路径下面添加 QQWry.dat 文件,这个文件是IP数据库文件

2、添加以下一个类 IPScanner

C# 代码 复制
 public class IPScanner    {        //私有成员#region 私有成员         PRivate string dataPath;        private string ip;        private string country;        private string local;        private long firstStartIp = 0;        private long lastStartIp = 0;        private FileStream objfs = null;        private long startIp = 0;        private long endIp = 0;        private int countryFlag = 0;        private long endIpOff = 0;        private string errMsg = null;        //构造函数#region 构造函数         public IPScanner()        {            this.dataPath = System.Web.HttpContext.Current.Server.MapPath("/ipdata/QQWry.dat");        }        //公共属性#region 公共属性         public string DataPath        {            set { dataPath = value; }        }        public string IP        {            set { ip = value; }        }        public string Country        {            get { return country; }        }        public string Local        {            get { return local; }        }        public string ErrMsg        {            get { return errMsg; }        }        //搜索匹配数据#region 搜索匹配数据         private int QQwry()        {            string pattern = @"(((\\d{1,2})|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d{1,2})|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))";            Regex objRe = new Regex(pattern);            Match objMa = objRe.Match(ip);            if (!objMa.Success)            {                this.errMsg = "IP格式错误";                return 4;            }            long ip_Int = this.IpToInt(ip);            int nRet = 0;            if (ip_Int >= IpToInt("127.0.0.0") && ip_Int <= IpToInt("127.255.255.255"))            {                this.country = "本机内部环回地址";                this.local = "";                nRet = 1;            }            else if ((ip_Int >= IpToInt("0.0.0.0") && ip_Int <= IpToInt("2.255.255.255")) || (ip_Int >= IpToInt("64.0.0.0") && ip_Int <= IpToInt("126.255.255.255")) || (ip_Int >= IpToInt("58.0.0.0") && ip_Int <= IpToInt("60.255.255.255")))