如何在不使用站点请求的情况下获取真实IP地址? C#

时间:2016-04-13 15:19:22

标签: c# networking ip

你可以看到我使用下面的代码在任何连接到互联网的PC上获取任何真正的IP地址,但我想知道是否有办法获得真正的IP地址而无需调用网站来获取它?

如果有办法将其作为电子邮件发送到我的hotmail / gmail / ...等帐户 我在互联网上找到了很多方法,但所有这些方法都被邮件服务器阻止了

        private string getExternalIp()
    {
        try
        {
            string externalIP;
            externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
            externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
                         .Matches(externalIP)[0].ToString();
            return externalIP;

        }
        catch
        {
            MessageBox.Show("Please Call Technical Support", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return null;
        }
    }

1 个答案:

答案 0 :(得分:0)

我认为没有任何可靠的方法来获取外部IP地址而不实际连接到某些东西。这是因为您的计算机可能位于NAT后面,并且根本没有信息它的外部IP地址。

当然,如果你知道这台机器在其中一个接口上配置了它的外部IP地址,你可以使用NetworkInterface.GetAllNetworkInterfaces列出所有接口。