blob: 04a15caa3ca94baa93e697b302849848534c8eea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace Tango.Transport.Helpers
{
public static class IPAddressHelper
{
public static string GetLocalIpAddress()
{
foreach (var netI in NetworkInterface.GetAllNetworkInterfaces())
{
if (netI.NetworkInterfaceType != NetworkInterfaceType.Wireless80211 &&
(netI.NetworkInterfaceType != NetworkInterfaceType.Ethernet ||
netI.OperationalStatus != OperationalStatus.Up)) continue;
foreach (var uniIpAddrInfo in netI.GetIPProperties().UnicastAddresses.Where(x => netI.GetIPProperties().GatewayAddresses.Count > 0))
{
if (uniIpAddrInfo.Address.AddressFamily == AddressFamily.InterNetwork &&
uniIpAddrInfo.AddressPreferredLifetime != uint.MaxValue)
return uniIpAddrInfo.Address.ToString();
}
}
return null;
}
}
}
|