编辑:看起来这段代码只返回内部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,它只是一个计算机名称......)是一种奇怪的方式,但我相信这是正确的方法。怎么可能出错?
答案 0 :(得分:0)
您的系统是否有任何静态IP地址?通常,我们使用动态IP(作为DHCP客户端)或办公室的本地IP地址。
Google可以显示您的ISP的IP地址,而不是本地系统;如果您没有使用静态IP地址。
您可以为本地系统使用任何IP,这可能属于您所在国家/地区的多个本地网络。
您的代码看起来非常好,它会显示本地IP地址。请通过网络配置确认。