Как определить IPv4-адреса локального хоста? - PullRequest
29 голосов
/ 12 июля 2011

Как мне получить только Интернет-протокол версии 4 адресов от Dns.GetHostAddresses()? У меня есть код ниже, и он дает мне адреса IPv4 и IPv6. Я должен заставить его работать с ящиками, которые имеют несколько адресов IPv4.

IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
private void get_IPs()
    {
        foreach (IPAddress a in localIPs)
        {
           server_ip = server_ip + a.ToString() + "/";
        }
    }

Ответы [ 11 ]

0 голосов
/ 30 августа 2012

Для меня более чистое решение будет:

 public static string GetLocalIP() 
        {
            string ipv4Address = String.Empty;

            foreach (IPAddress currentIPAddress in Dns.GetHostAddresses(Dns.GetHostName()))
            {
                if (currentIPAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    ipv4Address = currentIPAddress.ToString();
                    break;
                }
            }

            return ipv4Address;
        }
...