private void FillNetworkInfo(NetworkAdapter adapter) { //List the connected networks. There are many other APIs //can be called to get network information. try { IEnumNetworkConnections connections = NetworkListManager.GetNetworkConnections(); foreach (INetworkConnection con in connections) { var adapterId = con.GetAdapterId(); if (adapter.Id != adapterId) continue; //var connectionId = con.GetConnectionId(); adapter.ConnectivityString = GetConnectivity(con.GetConnectivity()); adapter.IsConnected = con.IsConnected; adapter.IsConnectedToInternet = con.IsConnectedToInternet; INetwork network = con.GetNetwork(); adapter.NetworkName = network.GetName(); // var networkCategory = network.GetCategory(); //var adapter = _networkAdapters.FirstOrDefault(x => x.Id == adapterId); } } catch (Exception ex) { Logging.Log("Error: " + ex.ToString()); } //AdviseforNetworklistManager(); // UnAdviseforNetworklistManager(); }
public static bool IsVPNAdapter(NetworkAdapter adapter) { bool isVpnAdapter = adapter.Description.ToLower().StartsWith("tap"); if (isVpnAdapter) NetworkAdapter.OpenVpnAdapter = adapter; return isVpnAdapter; }
private List<NetworkAdapter> GetActiveNetworkInterfaces() { //Get collection of all network interfaces on the given machine. NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); var activeNics = nics.Where(x => x.OperationalStatus == OperationalStatus.Up && x.GetIPProperties() != null && x.Description != null && x.NetworkInterfaceType != NetworkInterfaceType.Loopback && x.GetIPProperties().DnsAddresses.Count > 0); var adapters = new List<NetworkAdapter>(); foreach (NetworkInterface nic in activeNics) { var adapter = new NetworkAdapter { Description = nic.Description, Name = nic.Name, Speed = nic.Speed / 1024, WmiMacAddress = nic.GetPhysicalAddress().ToString(), //PrimaryDns = nic.GetIPProperties().DnsAddresses[0].ToString(), BytesSent = nic.GetIPStatistics().BytesSent / 1024, BytesReceived = nic.GetIPStatistics().BytesReceived / 1024, Id = new Guid(nic.Id) }; string dnsEnabledRegKey = string.Format(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{0}", nic.Id); string nameServer = (string)Microsoft.Win32.Registry.GetValue(dnsEnabledRegKey, "NameServer", null); adapter.IsDNSEnabled = !string.IsNullOrWhiteSpace(nameServer); if (nic.GetIPProperties().GatewayAddresses != null && nic.GetIPProperties().GatewayAddresses.Count > 0) { adapter.GatewayIP = nic.GetIPProperties().GatewayAddresses.First().Address.ToString(); } if (nic.GetIPProperties().DnsAddresses.Count > 0) { adapter.PrimaryDns = nic.GetIPProperties().DnsAddresses[0].ToString(); } if (nic.GetIPProperties().DnsAddresses.Count > 1) { adapter.SecondaryDns = nic.GetIPProperties().DnsAddresses[1].ToString(); } foreach (UnicastIPAddressInformation ip in nic.GetIPProperties().UnicastAddresses) { if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { adapter.IpAddress = ip.Address.ToString(); } } FillNetworkInfo(adapter); adapters.Add(adapter); } return adapters; }