0

编辑:看起来此代码仅返回内部 IP。有没有办法使用 C# 找到我的外部 IP?

所以我一直在使用“标准”方法来获取您自己的 IP 地址:

IPAddress Own;
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        Own = ip;
    }
}

问题是这给我的地址在英国的某个地方,而我在澳大利亚 - 显然,当我向谷歌询问我自己的 IP 地址时,我得到的东西与这段代码给我的不同。

那么为什么这段代码不起作用呢?在我看来,使用 DNS 服务器来解析我自己的主机名(这不是 URL,它只是一个计算机名......)有点奇怪,但我相信这是正确的方法。可能出了什么问题?

4

1 回答 1

0

您的系统是否有任何静态 IP 地址?通常,我们使用动态 IP(作为 DHCP 客户端)或办公室的本地 IP 地址。

Google 可以显示您的 ISP 的 IP 地址,而不是本地系统;如果您不使用静态 IP 地址。

您可以为您的本地系统使用任何 IP,它可能属于您所在国家或国外的多个本地网络。

您的代码看起来非常好,它向您显示了本地 IP 地址。请确认网络配置。

于 2013-11-12T11:47:36.737 回答