|
@@ -79,13 +79,13 @@ namespace Emby.Server.Implementations.Networking
|
|
|
private IpAddressInfo[] _localIpAddresses;
|
|
|
private readonly object _localIpAddressSyncLock = new object();
|
|
|
|
|
|
- public IpAddressInfo[] GetLocalIpAddresses()
|
|
|
+ public IpAddressInfo[] GetLocalIpAddresses(bool ignoreVirtualInterface = true)
|
|
|
{
|
|
|
lock (_localIpAddressSyncLock)
|
|
|
{
|
|
|
if (_localIpAddresses == null)
|
|
|
{
|
|
|
- var addresses = GetLocalIpAddressesInternal().Result.Select(ToIpAddressInfo).ToArray();
|
|
|
+ var addresses = GetLocalIpAddressesInternal(ignoreVirtualInterface).Result.Select(ToIpAddressInfo).ToArray();
|
|
|
|
|
|
_localIpAddresses = addresses;
|
|
|
|
|
@@ -95,9 +95,9 @@ namespace Emby.Server.Implementations.Networking
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private async Task<List<IPAddress>> GetLocalIpAddressesInternal()
|
|
|
+ private async Task<List<IPAddress>> GetLocalIpAddressesInternal(bool ignoreVirtualInterface)
|
|
|
{
|
|
|
- var list = GetIPsDefault()
|
|
|
+ var list = GetIPsDefault(ignoreVirtualInterface)
|
|
|
.ToList();
|
|
|
|
|
|
if (list.Count == 0)
|
|
@@ -383,7 +383,7 @@ namespace Emby.Server.Implementations.Networking
|
|
|
return Dns.GetHostAddressesAsync(hostName);
|
|
|
}
|
|
|
|
|
|
- private List<IPAddress> GetIPsDefault()
|
|
|
+ private List<IPAddress> GetIPsDefault(bool ignoreVirtualInterface)
|
|
|
{
|
|
|
NetworkInterface[] interfaces;
|
|
|
|
|
@@ -414,7 +414,7 @@ namespace Emby.Server.Implementations.Networking
|
|
|
// Try to exclude virtual adapters
|
|
|
// http://stackoverflow.com/questions/8089685/c-sharp-finding-my-machines-local-ip-address-and-not-the-vms
|
|
|
var addr = ipProperties.GatewayAddresses.FirstOrDefault();
|
|
|
- if (addr == null || string.Equals(addr.Address.ToString(), "0.0.0.0", StringComparison.OrdinalIgnoreCase))
|
|
|
+ if (addr == null || (ignoreVirtualInterface && string.Equals(addr.Address.ToString(), "0.0.0.0", StringComparison.OrdinalIgnoreCase)))
|
|
|
{
|
|
|
return new List<IPAddress>();
|
|
|
}
|