public async Task <bool> ConnectToWifi() { try { var wireless = NativeWifi.EnumerateAvailableNetworks().FirstOrDefault(x => string.Equals(x.Ssid.ToString(), "wireless", StringComparison.CurrentCultureIgnoreCase)); if (wireless != null) { _logger.Log(LogLevel.Information, JsonSerializer.Serialize(wireless)); await NativeWifi.ConnectNetworkAsync(wireless.Interface.Id, wireless.ProfileName ?? "wireless", wireless.BssType, TimeSpan.FromSeconds(30)); _seleniumManipulator.LoginWifi(); return(true); } _errorHandler.LogErrorAndDelay("cannot connect wifi"); if (_errorHandler.CheckError()) { _errorHandler.HandleError(); } return(false); } catch (Exception e) { _errorHandler.LogErrorAndDelay(e.Message); if (_errorHandler.CheckError()) { _errorHandler.HandleError(); } return(false); } }
public override void ConnectTrueWifi() { connectionStateCallBack.StateChange("连接正确WIFI..."); // 打开WLAN NativeWifi.TurnOnInterfaceRadio(NativeWifi.EnumerateInterfaces().FirstOrDefault().Id); while (true) { // 找到 WIFI var a = NativeWifi.EnumerateAvailableNetworks() .Where(x => !string.IsNullOrWhiteSpace(x.ProfileName)) .OrderByDescending(x => x.SignalQuality) .Where(x => x.Ssid.ToString().Equals("HXGNET")) .FirstOrDefault(); if (a == null) { connectionStateCallBack.StateChange("等待WIFI..."); Thread.Sleep(500); continue; } // 连接 NativeWifi.ConnectNetwork(a.Interface.Id, a.ProfileName, a.BssType); connectionStateCallBack.StateChange("已连接WIFI..."); break; } }
public async Task DisConnectWifi() { var wireless = NativeWifi.EnumerateAvailableNetworks().FirstOrDefault(x => x.Ssid.ToString().Equals("wireless")); if (wireless != null) { await NativeWifi.DisconnectNetworkAsync(wireless.Interface.Id, TimeSpan.FromSeconds(30)); } }
/// <summary> /// Windowsが保持するwifiネットワークのリストを取得する /// </summary> public void RefreshNetworkInfomations() { networkModels.Clear(); var networks = NativeWifi.EnumerateAvailableNetworks().ToList(); networkModels.AddRange(networks.Select(e => new NetworkModel() { Ssid = Encoding.UTF8.GetString(e.Ssid.ToBytes()), NetworkType = ConvertBssType(e.BssType), Authentication = ConvertAuthAlgorithm(e.AuthAlgorithm), Encryption = ConvertCipherAlgorithm(e.CipherAlgorithm) })); #if DEBUG AddTestDataOfNetworks(); #endif }
/// <summary> /// Connects to the available wireless LAN which has the highest signal quality. /// </summary> /// <returns>True if successfully connected. False if not.</returns> public static async Task <bool> ConnectAsync() { var availableNetwork = NativeWifi.EnumerateAvailableNetworks() .Where(x => !string.IsNullOrWhiteSpace(x.ProfileName)) .OrderByDescending(x => x.SignalQuality) .FirstOrDefault(); if (availableNetwork == null) { return(false); } return(await NativeWifi.ConnectNetworkAsync( interfaceId : availableNetwork.Interface.Id, profileName : availableNetwork.ProfileName, bssType : availableNetwork.BssType, timeout : TimeSpan.FromSeconds(10))); }
private static void ShowInformation() { Trace.WriteLine("===== Usable Interfaces ====="); foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces()) { Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})"); } Trace.WriteLine("===== Usable Interface Connections ====="); foreach (var interfaceInfo in NativeWifi.EnumerateInterfaceConnections()) { Trace.WriteLine($"{{Interface: {interfaceInfo.Description} ({interfaceInfo.Id})"); Trace.WriteLine($" Connection: {interfaceInfo.ConnectionMode}"); Trace.WriteLine($" RadioOn: {interfaceInfo.IsRadioOn}"); Trace.WriteLine($" Connected: {interfaceInfo.IsConnected}"); Trace.WriteLine($" Profile: {interfaceInfo.ProfileName}}}"); } Trace.WriteLine("===== Available Network SSIDs ====="); foreach (var ssid in NativeWifi.EnumerateAvailableNetworkSsids()) { Trace.WriteLine($"SSID: {ssid}"); } Trace.WriteLine("===== Connected Network SSIDs ====="); foreach (var ssid in NativeWifi.EnumerateConnectedNetworkSsids()) { Trace.WriteLine($"SSID: {ssid}"); } Trace.WriteLine("===== Available Networks ====="); foreach (var network in NativeWifi.EnumerateAvailableNetworks()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BSS: {network.BssType}"); Trace.WriteLine($" SignalQuality: {network.SignalQuality}"); Trace.WriteLine($" Security: {network.IsSecurityEnabled}}}"); } Trace.WriteLine("===== Available Network Groups ====="); foreach (var network in NativeWifi.EnumerateAvailableNetworkGroups()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BssNetworks: {network.BssNetworks.Count}"); Trace.WriteLine($" SignalQuality: {network.SignalQuality}"); Trace.WriteLine($" LinkQuality: {network.LinkQuality}"); Trace.WriteLine($" Band: {network.Band} GHz"); Trace.WriteLine($" Channel: {network.Channel}}}"); } Trace.WriteLine("===== BSS Networks ====="); foreach (var network in NativeWifi.EnumerateBssNetworks()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BSS: {network.BssType}"); Trace.WriteLine($" BSSID: {network.Bssid}"); Trace.WriteLine($" SignalStrength: {network.SignalStrength}"); Trace.WriteLine($" LinkQuality: {network.LinkQuality}"); Trace.WriteLine($" Frequency: {network.Frequency} KHz"); Trace.WriteLine($" Band: {network.Band} GHz"); Trace.WriteLine($" Channel: {network.Channel}}}"); } Trace.WriteLine("===== Network Profile Names ====="); foreach (var name in NativeWifi.EnumerateProfileNames()) { Trace.WriteLine($"Name: {name}"); } Trace.WriteLine("===== Network Profiles ====="); foreach (var profile in NativeWifi.EnumerateProfiles()) { Trace.WriteLine($"{{Name: {profile.Name}"); Trace.WriteLine($" Interface: {profile.Interface.Description} ({profile.Interface.Id})"); Trace.WriteLine($" SSID: {profile.Document.Ssid}"); Trace.WriteLine($" BSS: {profile.Document.BssType}"); Trace.WriteLine($" Authentication: {profile.Document.Authentication}"); Trace.WriteLine($" Encryption: {profile.Document.Encryption}"); Trace.WriteLine($" AutoConnect: {profile.Document.IsAutoConnectEnabled}"); Trace.WriteLine($" AutoSwitch: {profile.Document.IsAutoSwitchEnabled}"); Trace.WriteLine($" Position: {profile.Position}}}"); } Trace.WriteLine("===== Network Profile Radios ====="); foreach (var profile in NativeWifi.EnumerateProfileRadios()) { Trace.WriteLine($"{{Name: {profile.Name}"); Trace.WriteLine($" Interface: {profile.Interface.Description} ({profile.Interface.Id})"); Trace.WriteLine($" SSID: {profile.Document.Ssid}"); Trace.WriteLine($" RadioOn: {profile.IsRadioOn}"); Trace.WriteLine($" Connected: {profile.IsConnected}"); Trace.WriteLine($" SignalQuality: {profile.SignalQuality}"); Trace.WriteLine($" LinkQuality: {profile.LinkQuality}"); Trace.WriteLine($" Band: {profile.Band} GHz"); Trace.WriteLine($" Channel: {profile.Channel}}}"); } }
private static void ShowInformation() { Trace.WriteLine("[Usable Interfaces]"); foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces()) { Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})"); } Trace.WriteLine("[Available Network SSIDs]"); foreach (var ssid in NativeWifi.EnumerateAvailableNetworkSsids()) { Trace.WriteLine($"SSID: {ssid}"); } Trace.WriteLine("[Connected Network SSIDs]"); foreach (var ssid in NativeWifi.EnumerateConnectedNetworkSsids()) { Trace.WriteLine($"SSID: {ssid}"); } Trace.WriteLine("[Available Networks]"); foreach (var network in NativeWifi.EnumerateAvailableNetworks()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BSS: {network.BssType}"); Trace.WriteLine($" Signal: {network.SignalQuality}"); Trace.WriteLine($" Security: {network.IsSecurityEnabled}}}"); } Trace.WriteLine("[BSS Networks]"); foreach (var network in NativeWifi.EnumerateBssNetworks()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BSS: {network.BssType}"); Trace.WriteLine($" BSSID: {network.Bssid}"); Trace.WriteLine($" Signal: {network.SignalStrength}"); Trace.WriteLine($" Link: {network.LinkQuality}"); Trace.WriteLine($" Frequency: {network.Frequency}"); Trace.WriteLine($" Channel: {network.Channel}}}"); } Trace.WriteLine("[Network Profile Names]"); foreach (var name in NativeWifi.EnumerateProfileNames()) { Trace.WriteLine($"Name: {name}"); } Trace.WriteLine("[Network Profiles]"); foreach (var profile in NativeWifi.EnumerateProfiles()) { Trace.WriteLine($"{{Name: {profile.Name}"); Trace.WriteLine($" Interface: {profile.Interface.Description} ({profile.Interface.Id})"); Trace.WriteLine($" SSID: {profile.Ssid}"); Trace.WriteLine($" BSS: {profile.BssType}"); Trace.WriteLine($" Authentication: {profile.Authentication}"); Trace.WriteLine($" Encryption: {profile.Encryption}"); Trace.WriteLine($" Signal: {profile.SignalQuality}"); Trace.WriteLine($" Position: {profile.Position}"); Trace.WriteLine($" Automatic: {profile.IsAutomatic}"); Trace.WriteLine($" Connected: {profile.IsConnected}}}"); } }
private static void ShowInformation() { Trace.WriteLine("[Usable Interfaces]"); foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces()) { Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})"); } Trace.WriteLine(""); Trace.WriteLine("[Available Network SSIDs]"); foreach (var ssid in NativeWifi.EnumerateAvailableNetworkSsids()) { Trace.WriteLine($"SSID: {ssid}"); } Trace.WriteLine(""); Trace.WriteLine("[Connected Network SSIDs]"); foreach (var ssid in NativeWifi.EnumerateConnectedNetworkSsids()) { Trace.WriteLine($"SSID: {ssid}"); } Trace.WriteLine(""); Trace.WriteLine("[Available Networks]"); foreach (var network in NativeWifi.EnumerateAvailableNetworks()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BSS: {network.BssType}"); Trace.WriteLine($" Signal: {network.SignalQuality}"); Trace.WriteLine($" Security: {network.IsSecurityEnabled}"); Trace.WriteLine($" Auth Algorithm: {network.AuthAlgorithm.ToString()}"); Trace.WriteLine($" Has Profile: {network.IsHasProfile} {(network.IsHasProfile ? "(" + network.ProfileName + ")" : network.ProfileName)}"); Trace.WriteLine($" Cipher Algorithm: {network.CipherAlgorithm.ToString()}}}"); var bssNetworks = NativeWifi.EnumerateBssNetworks(network); if (bssNetworks != null) { Trace.WriteLine("[Child BSS Networks]"); foreach (var bssNetwork in bssNetworks) { Trace.WriteLine($"{{BSSID: {bssNetwork.Bssid}"); Trace.WriteLine($" SSID: {bssNetwork.Ssid}"); Trace.WriteLine($" BSS: {bssNetwork.BssType}"); Trace.WriteLine($" Signal: {bssNetwork.SignalStrength}"); Trace.WriteLine($" Link: {bssNetwork.LinkQuality}"); Trace.WriteLine($" Frequency: {bssNetwork.Frequency}"); Trace.WriteLine($" Channel: {bssNetwork.Channel}}}"); } } } Trace.WriteLine(""); Trace.WriteLine("[BSS Networks]"); foreach (var network in NativeWifi.EnumerateBssNetworks()) { Trace.WriteLine($"{{Interface: {network.Interface.Description} ({network.Interface.Id})"); Trace.WriteLine($" SSID: {network.Ssid}"); Trace.WriteLine($" BSS: {network.BssType}"); Trace.WriteLine($" BSSID: {network.Bssid}"); Trace.WriteLine($" Signal: {network.SignalStrength}"); Trace.WriteLine($" Link: {network.LinkQuality}"); Trace.WriteLine($" Frequency: {network.Frequency}"); Trace.WriteLine($" Channel: {network.Channel}}}"); } Trace.WriteLine(""); Trace.WriteLine("[Network Profile Names]"); foreach (var name in NativeWifi.EnumerateProfileNames()) { Trace.WriteLine($"Name: {name}"); } Trace.WriteLine(""); Trace.WriteLine("[Network Profiles]"); foreach (var profile in NativeWifi.EnumerateProfiles()) { Trace.WriteLine($"{{Name: {profile.Name}"); Trace.WriteLine($" Interface: {profile.Interface.Description} ({profile.Interface.Id})"); Trace.WriteLine($" SSID: {profile.Document.Ssid}"); Trace.WriteLine($" BSS: {profile.Document.BssType}"); Trace.WriteLine($" Authentication: {profile.Document.Authentication}"); Trace.WriteLine($" Encryption: {profile.Document.Encryption}"); Trace.WriteLine($" AutoConnect: {profile.Document.IsAutoConnectEnabled}"); Trace.WriteLine($" AutoSwitch: {profile.Document.IsAutoSwitchEnabled}"); Trace.WriteLine($" Position: {profile.Position}"); Trace.WriteLine($" RadioOn: {profile.IsRadioOn}"); Trace.WriteLine($" Signal: {profile.SignalQuality}"); Trace.WriteLine($" Connected: {profile.IsConnected}}}"); } }