如何在C#中获取机器的IP地址

Azh*_*har 12 .net c# ip-address

如何在C#中获取计算机的IP地址?

Ric*_*lay 33

IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
Run Code Online (Sandbox Code Playgroud)

您的计算机没有单个IP地址,某些返回的地址可以是IPv6.

MSDN链接:

或者,正如MSalters所提到的,127.0.0.1/ ::1环回地址,并且将始终引用本地计算机.但是,由于显而易见的原因,它不能用于从远程计算机连接到本地计算机.

  • 在另一个答案中从@patridge复制:如果您正在寻找更相关的IP地址,您可能希望排除环回IP(例如,127.0.0.1和:: 1),如下所示:.Where(ip =>! Net.IPAddress.IsLoopback(IP)) (2认同)

Azh*_*har 9

我想要的答案是

string ipAddress = "";
if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0)
{
     ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString();
}
Run Code Online (Sandbox Code Playgroud)

  • 这两次执行`GetHostAddresses`和`GetHostName`; 你应该将GetHostAddresses的结果赋给变量,然后检查`Length`. (8认同)
  • 如果您正在寻找更相关的IP地址,您可能希望排除环回IP(例如,127.0.0.1和:: 1),如下所示:`.Where(ip =>!Net.IPAddress.IsLoopback(ip) )`. (8认同)