获取公网IP地址

如何获取公网IP地址
      IP地址分为本地IP和公网IP,本地IP地址多用于局域网中。则公网IP又称为实体IP地址,对应着每一部计算机的位置,因此要查询当前IP地址的地理位置也需要从公网IP上做功夫。
    通过特定的网址获取公网IP地址,这里使用http://ip.qq.com/
        /// <summary>
        /// 获取公网IP
        /// </summary>
        /// <returns></returns>
        private static string InternetIP()
        {
            string IP = "";

            HttpWebRequest ReqIP = (HttpWebRequest)HttpWebRequest.Create(new Uri(@"http://ip.qq.com/"));
            HttpWebResponse ResIP = (HttpWebResponse)ReqIP.GetResponse();
            Stream s = ResIP.GetResponseStream();
            StreamReader sr = new StreamReader(s, Encoding.Default);
            string line = sr.ReadToEnd();

            Regex r = new Regex(@"((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)", RegexOptions.None);//设置正则表达式
            Match m = r.Match(line);//对指定的字符串进行正则表达式匹配

            IP = m.Groups[0].Value.ToString();
            ResIP.Close();
            return IP;
        }
      ip网址,有的网址没有对外进行授权获取则无法抓取网址信息。会返回异常:远程服务器返回错误: (401) 未经授权。如: https://www.ipip.net/ip.html
      抓取网址信息后,需要进行整篇的匹配。这里使用正则表达式(Regex) C#正则表达式Regex类的用法

猜你喜欢

转载自blog.csdn.net/qq_23833037/article/details/76457863
今日推荐