首页 > 学院 > 开发设计 > 正文

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

2019-11-17 01:49:41
字体:
来源:转载
供稿:网友

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")))
上一篇:性能优化系列

下一篇:函数调用、枚举

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表