internal static IEnumerable <AvailableNetworkPack> EnumerateAvailableNetworks(Base.WlanClient client) { using (var container = new DisposableContainer <Base.WlanClient>(client)) { var interfaceInfoList = Base.GetInterfaceInfoList(container.Content.Handle); foreach (var interfaceInfo in interfaceInfoList.Select(x => new InterfaceInfo(x))) { var availableNetworkList = Base.GetAvailableNetworkList(container.Content.Handle, interfaceInfo.Id); foreach (var availableNetwork in availableNetworkList) { if (!BssTypeConverter.TryConvert(availableNetwork.dot11BssType, out BssType bssType)) { continue; } //Debug.WriteLine("Interface: {0}, SSID: {1}, Signal: {2}, Security: {3}", // interfaceInfo.Description, // availableNetwork.dot11Ssid, // availableNetwork.wlanSignalQuality, // availableNetwork.bSecurityEnabled); yield return(new AvailableNetworkPack( interfaceInfo: interfaceInfo, ssid: new NetworkIdentifier(availableNetwork.dot11Ssid.ToBytes(), availableNetwork.dot11Ssid.ToString()), bssType: bssType, signalQuality: (int)availableNetwork.wlanSignalQuality, isSecurityEnabled: availableNetwork.bSecurityEnabled, profileName: availableNetwork.strProfileName)); } } } }
internal static IEnumerable <BssNetworkPack> EnumerateBssNetworks(Base.WlanClient client) { using (var container = new DisposableContainer <Base.WlanClient>(client)) { var interfaceInfoList = Base.GetInterfaceInfoList(container.Content.Handle); foreach (var interfaceInfo in interfaceInfoList.Select(x => new InterfaceInfo(x))) { var networkBssEntryList = Base.GetNetworkBssEntryList(container.Content.Handle, interfaceInfo.Id); foreach (var networkBssEntry in networkBssEntryList) { if (!BssTypeConverter.TryConvert(networkBssEntry.dot11BssType, out BssType bssType)) { continue; } //Debug.WriteLine("Interface: {0}, SSID: {1}, BSSID: {2}, Signal: {3} Link: {4}, Frequency: {5}", // interfaceInfo.Description, // networkBssEntry.dot11Ssid, // networkBssEntry.dot11Bssid, // networkBssEntry.lRssi, // networkBssEntry.uLinkQuality, // networkBssEntry.ulChCenterFrequency); yield return(new BssNetworkPack( interfaceInfo: interfaceInfo, ssid: new NetworkIdentifier(networkBssEntry.dot11Ssid.ToBytes(), networkBssEntry.dot11Ssid.ToString()), bssType: bssType, bssid: new NetworkIdentifier(networkBssEntry.dot11Bssid.ToBytes(), networkBssEntry.dot11Bssid.ToString()), signalStrength: networkBssEntry.lRssi, linkQuality: (int)networkBssEntry.uLinkQuality, frequency: (int)networkBssEntry.ulChCenterFrequency, channel: DetectChannel(networkBssEntry.ulChCenterFrequency))); } } } }