如何获取 IPv4 IP 而不是环回 ip

How to get IPv4 IP rather then loopback ip

我正在开发一个需要用户系统 IP 地址的应用程序,我在下面的代码中使用了该地址

获取IP

IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress i in localIPs)
{
    if (i.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
    {
        txtIP.Text = i.ToString();
    }
}

在许多系统中,它工作得很好,但有时它会捕获环回 IP 地址 127.0.0.1。谁能指导我如何防止应用程序捕获环回 IP。

只过滤环回IP

IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress i in localIPs)
{
    if (i.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork
        && !IPAddress.isLoopback(i))
    {
        txtIP.Text = i.ToString();
    }
}