adjust discovery of local ip addresses

This commit is contained in:
Luke Pulverenti
2014-09-16 23:04:10 -04:00
parent 5363cb2719
commit 6130cb2403
6 changed files with 107 additions and 42 deletions

View File

@@ -24,14 +24,32 @@ namespace MediaBrowser.Common.Implementations.Networking
/// <returns>IPAddress.</returns>
public IEnumerable<string> GetLocalIpAddresses()
{
var list = GetIPsDefault().Where(i => !IPAddress.IsLoopback(i)).Select(i => i.ToString()).ToList();
var list = GetIPsDefault()
.Where(i => !IPAddress.IsLoopback(i))
.Select(i => i.ToString())
.ToList();
if (list.Count > 0)
try
{
return list;
}
var listFromDns = Dns.GetHostAddresses(Dns.GetHostName())
.Where(i => i.AddressFamily == AddressFamily.InterNetwork)
.Where(i => !IPAddress.IsLoopback(i))
.Select(i => i.ToString())
.ToList();
return GetLocalIpAddressesFallback();
if (listFromDns.Count > 0)
{
return listFromDns
.OrderBy(i => (list.Contains(i, StringComparer.OrdinalIgnoreCase) ? 0 : 1))
.ToList();
}
}
catch
{
}
return list;
}
public bool IsInLocalNetwork(string endpoint)