using System.Net; using System.Net.NetworkInformation; namespace Universal; public class NetworkAddressHelper { public static List GetAllIPAddress() { List ipAddresses = []; foreach (var item in GetNetworkAdapterNames()) ipAddresses.AddRange(GetIPAddressByAdapterName(item)); return ipAddresses; } public static List GetAllIPAddressStr() { List ipAddresses = []; foreach (var item in GetNetworkAdapterNames()) GetIPAddressByAdapterName(item).Foreach(t => ipAddresses.Add(t.ToString())); return ipAddresses; } public static List GetNetworkAdapterNames() { List adapterNames = []; NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface networkInterface in networkInterfaces) { adapterNames.Add(networkInterface.Name); } return adapterNames; } public static List GetIPAddressByAdapterName(string adapterName) { List ipAddresses = []; NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface networkInterface in networkInterfaces) { if (networkInterface.Name.Equals(adapterName, StringComparison.OrdinalIgnoreCase)) { IPInterfaceProperties properties = networkInterface.GetIPProperties(); foreach (UnicastIPAddressInformation ipAddressInfo in properties.UnicastAddresses) { if (ipAddressInfo.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { ipAddresses.Add(ipAddressInfo.Address); } } break; } } return ipAddresses; } }