private List<IPAddress> GetLocalIps()
{
var ips = new List<IPAddress>();
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface nic in adapters)
{
if (nic.OperationalStatus == OperationalStatus.Up &&
(nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet3Megabit ||
nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet ||
nic.NetworkInterfaceType == NetworkInterfaceType.FastEthernetT ||
nic.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
nic.NetworkInterfaceType == NetworkInterfaceType.GigabitEthernet ||
nic.NetworkInterfaceType == NetworkInterfaceType.FastEthernetFx))
{
foreach (UnicastIPAddressInformation ipInfo in nic.GetIPProperties().UnicastAddresses)
{
byte[] address = ipInfo.Address.GetAddressBytes();
if (address.Length == 4)
{
if ((address[0] == 172 && address[1] >= 16 && address[1] <= 31)
|| (address[0] == 10)
|| (address[0] == 192 && address[1] == 168))
{
Logger.Debug("Got local interface " + ipInfo.Address);
ips.Add(ipInfo.Address);
}
}
}
}
}
return ips;
}