C# - 获取当前的公共IP地址

时间:2018-05-12 12:47:15

标签: c# networking

我相信这个问题很快就会被标记为重复。但是,我确实认为这是一个合理的问题。

此时,我使用以下代码获取当前的IP地址:

IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
IPAddress currentIpAddress = hostEntry.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
Console.WriteLine(currentIpAddress.ToString());

当我运行此代码时,我得到了从命令行运行ipconfig时看到的第一个以太网适配器值。但是,这个值不同于我在运行查询时看到的IP地址"我的IP地址是什么"在谷歌上。我不明白为什么这些价值观会有所不同。出于这个原因,我担心我的代码不正确。

如何知道我的代码是否正确获取了应用当前正在运行的计算机的IP地址?

1 个答案:

答案 0 :(得分:1)

我猜您所看到的是您网络中的本地IP地址。它就像192.168.x.x,对吧?

从您的本地电脑上,您无法看到您的"外部" IP地址。它为您的路由器所知,或者您必须查询显示您的IP地址的服务。因此,您必须找到可以通过REST提出的某种服务,或者加载一个显示您的IP地址并解析HTML的网页。