diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-09-16 23:04:10 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-09-16 23:04:10 -0400 |
| commit | 6130cb2403662596bba0474494372446d9caa3c3 (patch) | |
| tree | 8068a437340aa7e904965caf7e50053c433623d0 /MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs | |
| parent | 5363cb2719752732db17199ce9ed27743f0a80a1 (diff) | |
adjust discovery of local ip addresses
Diffstat (limited to 'MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs')
| -rw-r--r-- | MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs b/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs index 8159be634..46f880657 100644 --- a/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs +++ b/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs @@ -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(); + + if (listFromDns.Count > 0) + { + return listFromDns + .OrderBy(i => (list.Contains(i, StringComparer.OrdinalIgnoreCase) ? 0 : 1)) + .ToList(); + } } + catch + { - return GetLocalIpAddressesFallback(); + } + + return list; } public bool IsInLocalNetwork(string endpoint) |
