使用c#无法获得正确的互联网IP

时间:2012-07-29 08:03:48

标签: c#-3.0

我确实试图通过使用GetIp方法获取互联网IP(下面),但它只获得一个 123.22.114.5 的IP,我重启了我的调制解调器很多次但仍然 123.22.114.5 ,请帮帮我。 (我在Windows 7 64bit中使用visual studio 2010)

(抱歉我的英语不好)

private string GetIp()
    {
        string extenalIp = "";
        string whatIsMyIp = "http://automation.whatismyip.com/n09230945.asp";
        string getIpRegex = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b";
        WebClient wc = new WebClient();
        UTF8Encoding utf8 = new UTF8Encoding();
        string requestHtml = "";
        try
        {
            requestHtml = utf8.GetString(wc.DownloadData(whatIsMyIp));
        }
        catch (Exception e)
        {
            // do some thing with exception
            Console.WriteLine(e.Message);
        }
        Regex r = new Regex(getIpRegex);
        Match m = r.Match(requestHtml);
        if (m.Success)
        {
            extenalIp = m.Value.ToString();
        }
        wc.Dispose();
        return extenalIp;
    }

1 个答案:

答案 0 :(得分:1)

当您请求某些外部网站(例如 whatismyip )时,您只会获得一个IP,即您的ISP的外部 IP地址。

所有ISP都有限制的静态IP地址和面向互联网的主机。 广域网IP地址通常由许多用户共享。

您看到的IP与您的本地IP地址完全不同,因此重新启动调制解调器不会改变它。