public static List <Networking.ScannedNetworkInfo> GatherScannedNetworkInfo()
        {
            List <Networking.ScannedNetworkInfo> listOfNetworks = new List <Networking.ScannedNetworkInfo>();

            // Gathers interfaces to use
            foreach (WlanClient.WlanInterface wlanInterface in Networking.client.Interfaces)
            {
                Wlan.WlanAvailableNetwork[] scannedNetworks = wlanInterface.GetAvailableNetworkList(Wlan.WlanGetAvailableNetworkFlags.IncludeAllManualHiddenProfiles);
                // Goes through each networkIndex it sees to parse information
                foreach (Wlan.WlanAvailableNetwork networkIndex in scannedNetworks)
                {
                    Networking.ScannedNetworkInfo networkInfo = new Networking.ScannedNetworkInfo();
                    Wlan.Dot11Ssid ssid        = networkIndex.dot11Ssid;
                    string         networkName = "";

                    networkName = Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);

                    if (string.IsNullOrEmpty(networkName))
                    {
                        networkName = "*Hidden Network*";
                    }
                    else if (networkName == CurrentNetworkSettings.ReturnNetworkName())
                    {
                        // Prevents your current connected network from showing in the available network list
                        continue;
                    }
                    else
                    {
                        networkName = Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
                    }

                    string networkSecurity       = networkIndex.dot11DefaultCipherAlgorithm.ToString();
                    string networkSignalStrength = networkIndex.wlanSignalQuality.ToString() + "%";

                    listOfNetworks.Add(new Networking.ScannedNetworkInfo
                    {
                        SSID           = networkName,
                        SecurityType   = networkSecurity,
                        SignalStrength = networkSignalStrength
                    });
                }
            }

            listOfNetworks = listOfNetworks.OrderByDescending(s => s.SignalStrength).ToList();
            return(listOfNetworks);
        }
示例#2
0
        public static List <string> ReturnDNSServers()
        {
            List <string> dnsServerAddresses = new List <string>();

            foreach (WlanClient.WlanInterface wlanInterface in Networking.client.Interfaces)
            {
                foreach (var dnsAddr in wlanInterface.NetworkInterface.GetIPProperties().DnsAddresses)
                {
                    if (CurrentNetworkSettings.IsConnected() == false)
                    {
                        dnsServerAddresses.Add(SocketError.NotConnected.ToString());
                    }
                    else
                    {
                        dnsServerAddresses.Add(dnsAddr.ToString());
                    }
                }
            }
            return(dnsServerAddresses);
        }