Esempio n. 1
0
        /// <summary>
        /// Turns on the radio of a wireless interface which is not currently on but can be on.
        /// </summary>
        /// <returns>True if successfully turned on. False if not.</returns>
        public static async Task <bool> TurnOnAsync()
        {
            var targetInterface = NativeWifi.EnumerateInterfaces()
                                  .FirstOrDefault(x =>
            {
                var radioSet = NativeWifi.GetInterfaceRadio(x.Id)?.RadioSets.FirstOrDefault();
                if (radioSet == null)
                {
                    return(false);
                }

                if (!radioSet.HardwareOn.GetValueOrDefault())                         // Hardware radio state is off.
                {
                    return(false);
                }

                return(radioSet.SoftwareOn == false);                          // Software radio state is off.
            });

            if (targetInterface == null)
            {
                return(false);
            }

            try
            {
                return(await Task.Run(() => NativeWifi.TurnOnInterfaceRadio(targetInterface.Id)));
            }
            catch (UnauthorizedAccessException)
            {
                return(false);
            }
        }
Esempio n. 2
0
        public async ValueTask SetWifiEnabledAsync(bool enabled)
        {
            foreach (var iface in NativeWifi.EnumerateInterfaces())
            {
                var radioSet = NativeWifi.GetInterfaceRadio(iface.Id)?.RadioSets.FirstOrDefault();
                if (radioSet == null)
                {
                    continue;
                }

                if (radioSet.HardwareOn != true)
                {
                    continue;
                }

                if (enabled)
                {
                    await Task.Run(() => NativeWifi.TurnOnInterfaceRadio(iface.Id));
                }
                else
                {
                    await Task.Run(() => NativeWifi.TurnOffInterfaceRadio(iface.Id));
                }
            }
        }
 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;
     }
 }
Esempio n. 4
0
        public ValueTask <bool?> GetWifiEnabledAsync()
        {
            var targetInterface = NativeWifi.EnumerateInterfaces().FirstOrDefault();

            if (targetInterface == null)
            {
                return(new ValueTask <bool?>((bool?)null));
            }

            var radioSet = NativeWifi.GetInterfaceRadio(targetInterface.Id)?.RadioSets.FirstOrDefault();

            return(new ValueTask <bool?>(radioSet?.SoftwareOn));
        }
Esempio n. 5
0
        private static void TurnOff()
        {
            foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces())
            {
                Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})");

                try
                {
                    Trace.WriteLine($"Turn off: {NativeWifi.TurnOffInterfaceRadio(interfaceInfo.Id)}");
                }
                catch (UnauthorizedAccessException)
                {
                    Trace.WriteLine("Turn off: Unauthorized");
                }
            }
        }
Esempio n. 6
0
        private static void ShowRadioInformation()
        {
            foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces())
            {
                Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})");

                var interfaceRadio = NativeWifi.GetInterfaceRadio(interfaceInfo.Id);
                if (interfaceRadio is null)
                {
                    continue;
                }

                foreach (var radioSet in interfaceRadio.RadioSets)
                {
                    Trace.WriteLine($"Type: {radioSet.Type}");
                    Trace.WriteLine($"HardwareOn: {radioSet.HardwareOn}, SoftwareOn: {radioSet.SoftwareOn}, On: {radioSet.On}");
                }
            }
        }
Esempio n. 7
0
        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}}}");
            }
        }
Esempio n. 8
0
 public static void Initialize(TestContext context)
 {
     _interfaceId = NativeWifi.EnumerateInterfaces()
                    .Select(x => x.Id)
                    .FirstOrDefault();
 }
Esempio n. 9
0
        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}}}");
            }
        }
Esempio n. 10
0
        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}}}");
            }
        }