Пример #1
0
 /// <summary>
 /// Executes a disconnect on the interface and changes the Status of the Link_Action_Response.
 /// </summary>
 /// <param name="laresp">The Link_Action_Response for this action.</param>
 /// <param name="iface">The interface do disconnect the link from.</param>
 public static void Action_Disconnect(ref Link_Action_Response laresp, ref NativeWifi.WlanClient.WlanInterface iface)
 {
     if (iface != null)
     {
         iface.Disconnect();
         Console.WriteLine("Disconnected b/c a Disconnect Link Action was received.");
         laresp.Status = STATUS.SUCCESS;
         laresp.Result = Link_Ac_Result.SUCCESS;
     }
     else
     {
         Console.WriteLine("Cannot disconnect a disabled interface.");
         laresp.Status = STATUS.REJECTED;
         laresp.Result = Link_Ac_Result.REFUSED;
     }
 }
Пример #2
0
        /// <summary>
        /// Executes a Power Down (disable interface) on the interface and changes the Status of the Link_Action_Response.
        /// </summary>
        /// <param name="laresp">The Link_Action_Response for this action.</param>
        /// <param name="iface">The interface do disconnect the link from.</param>
        public static void Action_Power_Down(ref Link_Action_Response laresp, ref NativeWifi.WlanClient.WlanInterface iface)
        {
            Console.WriteLine("Disabling interface.");
            try
            {
                using (ManagementObjectSearcher mos = new ManagementObjectSearcher(@"SELECT *
                                                                                  FROM Win32_NetworkAdapter
                                                                                  WHERE GUID = '" + iface.InterfaceGuid.ToString() + "'"))
                {

                    ManagementObject objMO = mos.Get().Cast<ManagementObject>().SingleOrDefault();
                    objMO.InvokeMethod("Disable", null);
                }
                laresp.Status = STATUS.SUCCESS;
                laresp.Result = Link_Ac_Result.SUCCESS;
            }
            catch (Exception)
            {
                laresp.Status = STATUS.UNSPECIFIED_FAILURE;
                laresp.Result = Link_Ac_Result.FAILURE;
            }
        }
Пример #3
0
 /// <summary>
 /// Converting Byte value to ASCII for Wifi Name
 /// </summary>
 /// <param name="ssid">SSID</param>
 /// <returns>Wifi Name as String</returns>
 private string GetStringForSSID(NativeWifi.Wlan.Dot11Ssid ssid)
 {
     return Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
 }
Пример #4
0
 /// <summary>
 /// Issues a scan order on the interface and processes (and sends) the rest of the message when the scan is completed.
 /// </summary>
 /// <param name="laresp">The Link_Action_Response for this action.</param>
 /// <param name="iface">The interface to scan.</param>
 /// <param name="m">The message to be processed and sent when the scan is complete.</param>
 public static void Action_Scan(Link_Action_Response laresp, NativeWifi.WlanClient.WlanInterface iface, Message m)
 {
     if (iface != null)
     {
         if(!iface.ScanRequested)
             iface.Scan();
         iface.ScanRequested = true;
         Console.Write("Waiting for scan results...");
         Information.MiscData.PendingLinkActionResponses.Add(m, laresp); //Message sent at the WlanApi class, when a scan event occurs.
     }
     else
     {
         Console.WriteLine("Cannot scan a disabled interface.");
         laresp.Status = STATUS.REJECTED;
     }
 }
Пример #5
0
 /// <summary>
 /// Check Network Connected
 /// </summary>
 /// <param name="client">Native Wifi Client object</param>
 /// <param name="connectionName">Wifi Connection Name</param>
 /// <returns>True/False Bool Value</returns>
 private bool chkConnected(NativeWifi.WlanClient client, string connectionName)
 {
     bool connectDisConnect = false;
     foreach (NativeWifi.WlanClient.WlanInterface wlanIface in client.Interfaces)
     {
         NativeWifi.Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
         foreach (NativeWifi.Wlan.WlanAvailableNetwork network in networks)
         {
             if (connectionName == GetStringForSSID(network.dot11Ssid))
             {
                 connectDisConnect = (network.flags.ToString().Contains("Connected")) ? true : false;
                 break;
             }
         }
     }
     return connectDisConnect;
 }
Пример #6
0
        /// <summary>
        /// Get Cipher Algorithm Pattern
        /// </summary>
        /// <param name="client">Native Wifi Client object</param>
        /// <param name="connectionName">Wifi Connection Name</param>
        /// <returns>Cipher Algorithm Pattern as string format</returns>
        private string getCipherAlgorithm(NativeWifi.WlanClient client, string connectionName)
        {
            string cipherAlgorithm = string.Empty;
            foreach (NativeWifi.WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                NativeWifi.Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
                foreach (NativeWifi.Wlan.WlanAvailableNetwork network in networks)
                {

                    if (connectionName == GetStringForSSID(network.dot11Ssid))
                    {
                        cipherAlgorithm = network.dot11DefaultCipherAlgorithm.ToString();
                        break;
                    }
                }
            }
            return cipherAlgorithm;
        }
Пример #7
0
        /// <summary>
        /// Check Network Connected
        /// </summary>
        /// <param name="client">Native Wifi Client object</param>
        /// <param name="connectionName">Wifi Connection Name</param>
        /// <returns>Connected /Disconnected Image in string format</returns>
        private string chkNetworkConnected(NativeWifi.WlanClient client, string connectionName)
        {
            string connectDisConnect = string.Empty;
            foreach (NativeWifi.WlanClient.WlanInterface wlanIface in client.Interfaces)
            {

                NativeWifi.Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
                foreach (NativeWifi.Wlan.WlanAvailableNetwork network in networks)
                {
                    if (connectionName == GetStringForSSID(network.dot11Ssid))
                    {
                        connectDisConnect = (network.flags.ToString().Contains("Connected")) ? "<img src='assets/Content/img/wifiConnect.png' alt='' />" : "<img src='assets/Content/img/wifiDisconnect.png' alt='' />";
                        break;
                    }
                }
            }
            return connectDisConnect;
        }
Пример #8
0
        /// <summary>
        /// Get Channel Number
        /// </summary>
        /// <param name="client">Native Wifi Client object</param>
        /// <param name="connectionName">Wifi Connection Name</param>
        /// <returns>Getting Channel Number</returns>
        public uint getChannelNumber(NativeWifi.WlanClient client, string connectionName)
        {
            uint channel = 0;
            foreach (NativeWifi.WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                NativeWifi.Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();
                foreach (NativeWifi.Wlan.WlanBssEntry network in wlanBssEntries)
                {
                    if (connectionName == GetStringForSSID(network.dot11Ssid))
                    {
                        channel = getChannelFromFrequency(network.chCenterFrequency);
                        break;
                    }

                }
            }
            return channel;
        }
Пример #9
0
 /// <summary>
 /// Get Wifi Signal Quality 
 /// </summary>
 /// <param name="client">Native Wifi Client Object</param>
 /// <param name="connectionName">Wifi Connection Name</param>
 /// <returns>uint signal value</returns>
 private uint getSignalQuality(NativeWifi.WlanClient client, string connectionName)
 {
     uint i = 0;
     foreach (NativeWifi.WlanClient.WlanInterface wlanIface in client.Interfaces)
     {
         NativeWifi.Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
         foreach (NativeWifi.Wlan.WlanAvailableNetwork network in networks)
         {
             if (connectionName == GetStringForSSID(network.dot11Ssid))
             {
                 i = network.wlanSignalQuality;
             }
         }
     }
     return i;
 }