Example #1
0
        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();
        }
Example #2
0
 public static bool IsVPNAdapter(NetworkAdapter adapter)
 {
     bool isVpnAdapter = adapter.Description.ToLower().StartsWith("tap");
     if (isVpnAdapter) NetworkAdapter.OpenVpnAdapter = adapter;
     return isVpnAdapter;
 }
Example #3
0
        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;
        }