【问题标题】:How to get the public IP v4 address如何获取公共 IPv4 地址
【发布时间】:2018-12-14 03:02:01
【问题描述】:

我正在使用以下代码来获取 ip v4 地址:

IPAddress[] ipAddress = Dns.GetHostAddresses(mycomputerName);
foreach (IPAddress ipaddr in ipAddress)
{
    if (ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
    {
        Console.WriteLine(ipaddr);
    }
}

在测试过程中,我发现我会得到三个ip地址:
192.168.241.1
192.168.200.1
10.108.150.48

第一个和第二个地址是我的 vmware 网络地址。如何只获取公网IP地址?

【问题讨论】:

  • 那些真实IP地址 - 你想要哪一个?
  • 可能是公网IP地址?
  • 是的,我要获取公网ip地址
  • 所以您只想获取特定适配器类型的 IP 地址?您可以循环遍历NetworkInterface.GetAllNetworkInterfaces()的结果,根据需要进行填充,并通过NetworkInterface.GetIPProperties().UnicastAddresses获取合适接口的IP地址

标签: c# ip-address


【解决方案1】:

您必须从 Web 客户端调用 this 站点并获取您的公共 IP。

 string public = new WebClient().DownloadString("http://icanhazip.com");  

【讨论】:

  • 我认为这不是 OP 的要求。
  • 嗯,我虽然他在问公共 ip(真实 ip)。等他回来再说吧。感谢您指出。
  • @cdev 谢谢,但计算机的网络访问权限可能有限。
猜你喜欢
  • 2018-08-24
  • 2019-09-26
  • 2020-04-08
  • 2011-01-27
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
相关资源
最近更新 更多