且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C# 获取外网IP地址

更新时间:2022-06-09 03:11:40

很多情况下我们需要获取外网的IP地址,一般用自带的方法获取到的都是不准确,往往获取到的是内网的IP地址,所以需要采用外部网站接口来获取。

代码

通过访问第三方接口来获取真实的ip地址

 public static string GetIPAddress()
 {
     string ip = "";
     try
     {
        WebClient MyWebClient = new WebClient();
        MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据

        Byte[] pageData = MyWebClient.DownloadData("http://www.net.cn/static/customercare/yourip.asp"); //从指定网站下载数据

        string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句

        //string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句

        string[] str = HtmlHelper.GetElementsByTagName(pageHtml, "h2");
        string[] str1 = str[0].Replace("<h2>", "").Split(',');

        ip = str1[0];
    }
    catch (WebException webEx)
    {
        webEx.Message.ToString()
    }
    return ip;
 }