Это может работать для вас:
string[] strIP = null;
int count = 0;
IPHostEntry HostEntry = Dns.GetHostEntry((Dns.GetHostName()));
if (HostEntry.AddressList.Length > 0)
{
strIP = new string[HostEntry.AddressList.Length];
foreach (IPAddress ip in HostEntry.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
strIP[count] = ip.ToString();
count++;
}
}
}
Проблема в том, что хост может иметь много IP-адресов. Вот почему используется строковый массив, он собирает их все.
- отредактировано L.B -
Вот рабочая версия кода выше
var addresses = Dns.GetHostEntry((Dns.GetHostName()))
.AddressList
.Where(x => x.AddressFamily == AddressFamily.InterNetwork)
.Select(x => x.ToString())
.ToArray();