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

时间:2016-08-01 09:03:30

标签: c# ip loopback

我正在开发一个需要用户系统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。

1 个答案:

答案 0 :(得分:2)

只需过滤环回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();
    }
}