Search code examples
c#iploopback

How to get IPv4 IP rather then loopback ip


I'm developing an application which needs user systems IP address for that i used below code

Get IP

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

In many systems it works very fine but some time it captures Loop-Back ip address 127.0.0.1. Can any one guide me how can i prevent application to capture loop-back IP.


Solution

  • Just filter the loopback 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();
        }
    }