Represents a client to the Zeroconf (Native Wifi) service.
This class is the entrypoint to Native Wifi management. To manage WiFi settings, create an instance of this class.
示例#1
0
        private static string GetSSIDName()
        {
            var wlan = new WlanClient();
            Collection<String> connectedSsids = new Collection<string>();
            Console.Out.WriteLine(LocalIPAddress());
            foreach (WlanClient.WlanInterface wlanInterface in wlan.Interfaces)
            {
                Wlan.Dot11Ssid ssid = wlanInterface.CurrentConnection.wlanAssociationAttributes.dot11Ssid;
                connectedSsids.Add(new String(Encoding.ASCII.GetChars(ssid.SSID, 0, (int)ssid.SSIDLength)));
                //wlanInterface.CurrentConnection.wlanAssociationAttributes
            }

            String strHostName = string.Empty;
            // Getting Ip address of local machine...
            // First get the host name of local machine.
            strHostName = Dns.GetHostName();
            Console.WriteLine("Local Machine's Host Name: " + strHostName);
            // Then using host name, get the IP address list..
            IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
            IPAddress[] addr = ipEntry.AddressList;

            for (int i = 0; i < addr.Length; i++)
            {
                Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString());
            }
            //Console.ReadLine();
            if(connectedSsids.Count > 0)
                return connectedSsids[0];
            return null;
        }
示例#2
0
        void bg_DoWork(object sender, DoWorkEventArgs e)
        {

            ObservableCollection<WirelessDevice> devices = new ObservableCollection<WirelessDevice>();
            WlanClient client = new WlanClient();
            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                // Lists all networks in the vicinity

                Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
                foreach (Wlan.WlanAvailableNetwork network in networks)
                {

                    string ssid = GetStringForSSID(network.dot11Ssid);
                    string msg = "Found network with SSID " + ssid;
                    log.dispatchLogMessage(msg);
                    msg = "Signal: " + network.wlanSignalQuality;
                    log.dispatchLogMessage(msg);
                    msg = "BSS Type : " + network.dot11BssType;
                    log.dispatchLogMessage(msg);
                    msg = "Profile Name : " + network.profileName;
                    log.dispatchLogMessage(msg);
                    log.dispatchLogMessage("");

                    WirelessDevice d = new WirelessDevice(ssid, network.wlanSignalQuality);
                    devices.Add(d);
                }
            }
            _unsecuredDevices = devices;
            e.Result = _unsecuredDevices;
        }
示例#3
0
        static void Main(string[] args)
        {
            try
            {
                parseCmdLine(args);

                if (help)
                    return;

                //entity = new RSSIRecorderEntities();
                client = new WlanClient();
                Console.WriteLine("Main thread: starting to ping -");

                Thread.Sleep(1000 - DateTime.Now.Millisecond);
                Console.WriteLine("Press any key to stop...");

                while (!Console.KeyAvailable)
                {
                    getRSSI(0);
                    Thread.Sleep(pingInterval - (DateTime.Now.Millisecond % pingInterval));
                }

                using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileName, true))
                {
                    file.WriteLine(textToWriteToFile);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception occured while trying to retrieve signal strength. Message - " + ex.Message + " Stack Trace - " + ex.StackTrace);
                return;
            }
        }
示例#4
0
文件: Form1.cs 项目: AlexKrainov/WiFi
        private void btnRefresh_Click(object sender, EventArgs e)
        {

            WlanClient client = new WlanClient();

            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {

                Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList(0);

                listNet.Items.Clear();
                foreach (Wlan.WlanAvailableNetwork network in wlanBssEntries)
                {

                    ListViewItem listItemWiFi = new ListViewItem();

                    listItemWiFi.Text = System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).Trim((char)0);

                    listItemWiFi.SubItems.Add(network.wlanSignalQuality.ToString() + "%");
                    listItemWiFi.SubItems.Add(network.dot11DefaultAuthAlgorithm.ToString().Trim((char)0));
                    listItemWiFi.SubItems.Add(network.dot11DefaultCipherAlgorithm.ToString().Trim((char)0));
                    listItemWiFi.ImageIndex = 0;
                    listNet.Items.Add(listItemWiFi);

                }
            }
        }
示例#5
0
        // Main function.
        static void Main(string[] args)
        {
            try
            {

                WlanClient client = new WlanClient();
                // Output file to write collected AP data. True means that we append to a existing file.
                using (System.IO.StreamWriter outputfile = new System.IO.StreamWriter(@"C:\Users\Public\WifiSniffer.txt", true))
                // Output file to write collected AP data....
                //using (System.IO.StreamWriter outputfile = new System.IO.StreamWriter(@"C:\Users\Public\WifiSniffer.txt"))

                    for (int j = 0; j < 5; j++ )
                    {
                        Console.Clear();
                        foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
                        {
                            // Network adapter vendor and model
                            Console.WriteLine(wlanIface.InterfaceDescription);
                            Console.WriteLine();
                            Wlan.WlanBssEntry[] bssEntries = wlanIface.GetNetworkBssList();
                            foreach (Wlan.WlanBssEntry bssEntry in bssEntries)
                            {
                                // SSID
                                Console.Write((GetStringForSSID(bssEntry.dot11Ssid)).PadRight(20));
                                Console.Write("   ");
                                //Console.WriteLine(Encoding.ASCII.GetString(bssEntry.dot11Bssid, 0, 6));
                                // MAC address
                                byte[] macAddr = bssEntry.dot11Bssid;
                                var macAddrLen = (uint)macAddr.Length;
                                var str = new string[(int)macAddrLen];
                                for (int i = 0; i < macAddrLen; i++)
                                {
                                    str[i] = macAddr[i].ToString("x2");
                                }
                                string mac = string.Join("", str);
                                Console.Write(mac.PadRight(20));
                                Console.Write("   ");
                                outputfile.WriteLine(mac);
                                Console.WriteLine(bssEntry.rssi);
                            }
                            //Console.WriteLine("Press enter to scan again");
                            //Console.ReadLine();
                            System.Threading.Thread.Sleep(1000);

                            //Scan wlans again, becouse default scan is ever 60s
                            wlanIface.Scan();
                        }
                    }
            }

            catch
            {
                Console.WriteLine("Error: Wlan not working properly");
                while (true) { }
            }
        }
示例#6
0
    static void Main(string[] args)
    {
        WlanClient client = new WlanClient();
        try
        {
            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();
                List<string> wirelessData = new List<string>();
                foreach (Wlan.WlanBssEntry network in wlanBssEntries)
                {
                    int rss = network.rssi;
                    byte[] macAddrBytes = network.dot11Bssid;

                    string tMac = "";
                    for (int i = 0; i < macAddrBytes.Length; i++){
                        tMac += macAddrBytes[i].ToString("x2").PadLeft(2, '0').ToUpper();
                    }

                    string macAddress = "";
                    for (int i = 0; i < (tMac.Length / 2); i++)
                    {
                        macAddress += tMac.Substring(i * 2, 2);//note C# substring(i,j) goes from i to i+j
                        if (i != 5) { macAddress += ":"; }
                    }

                    string ssid = System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).ToString().Replace(((char)0) + "", ""); //replace null chars
                    string dataString = "\"SSID\":\"" + ssid + "\",\"BSSID\":\"" + macAddress + "\",\"RSSI\":\"" + rss.ToString() + "\"";
                    wirelessData.Add(dataString);
                }
                Console.Write("[");

                int iter = 0;
                int numValues = wirelessData.Count;
                foreach (String row in wirelessData)
                {
                    Console.Write("{" + String.Join("},{", row+ "}")); //TODO: more elegant solution for JSON

                    if (iter + 1 < numValues)
                    {
                        Console.Write(",");
                    }
                    iter++;
                }
                Console.Write("]");
            }

        }
        catch (Exception ex)
        {
            //lala
        }
    }
        public static List<VOAccessPoint> GetAccessPoints()
        {
            var accessPoints = new List<VOAccessPoint>();
            var client = new WlanClient();

            foreach (var wlanIface in client.Interfaces)
            {
                var networks = wlanIface.GetAvailableNetworkList(0);
                foreach (var network in networks)
                {
                    var tmpAP = new VOAccessPoint();
                    tmpAP.NetworkId = GetStringForSSID(network.dot11Ssid);
                    tmpAP.SignalQuality = network.wlanSignalQuality.ToString();
                    tmpAP.Dot11BssType = network.dot11BssType.ToString();
                    string defaultAuthAlgorithm = GetAuthAlgorithum(network.dot11DefaultAuthAlgorithm);

                    tmpAP.Dot11DefaultAuthAlgorithm = defaultAuthAlgorithm;
                    tmpAP.Dot11DefaultCipherAlgorithm = network.dot11DefaultCipherAlgorithm.ToString();

                    string phyType = GetDot11PhyType(network.Dot11PhyTypes[0].ToString());

                    tmpAP.Dot11PhyTypes = phyType;
                    tmpAP.SecurityEnabled = network.securityEnabled.ToString();

                    accessPoints.Add(tmpAP);
                }

                var wlanBssEntries = wlanIface.GetNetworkBssList();

                foreach (var network2 in wlanBssEntries)
                {
                    new VOAccessPoint();
                    var macAddr = network2.dot11Bssid;

                    foreach (var ap in accessPoints)
                    {
                        if (ap.NetworkId == GetStringForSSID(network2.dot11Ssid))
                        {
                            var centerFrequency = Convert.ToUInt32(network2.chCenterFrequency.ToString());
                            var networkChannel = GetChannelNumber(centerFrequency);
                            ap.Channel = networkChannel;
                            ap.CenterFrequency = (centerFrequency / 1000000.00).ToString(CultureInfo.InvariantCulture);
                            ap.LinkQuality = network2.linkQuality.ToString();
                            ap.Rssi = network2.rssi.ToString();
                            ap.MacAddress = GetFormattedMacAddress(macAddr);
                        }
                    }
                }
            }
            return accessPoints;
        }
示例#8
0
文件: Program.cs 项目: vogler/LockOut
 static void Main(string[] args)
 {
     if (args.Length < 1)
     {
         Console.WriteLine("Arguments: a list of safe SSIDs: e.g. home work friendsWlan");
         return;
     }
     safeSSIDs = args;
     wlan = new WlanClient();
     SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(PowerModeChanged);
     Console.WriteLine("The program will check the SSID of the connected WLAN after resume from standby and lock the computer if it is not in the list of safe SSIDs.");
     Console.WriteLine("Press any key to exit.\n");
     Console.ReadKey();
 }
示例#9
0
        private static void Main(string[] args)
        {
            var wlanClient = new NativeWifi.WlanClient();

            foreach (NativeWifi.WlanClient.WlanInterface wlanInterface in wlanClient.Interfaces)
            {
                Wlan.WlanBssEntry[] wlanBssEntries = wlanInterface.GetNetworkBssList();
                foreach (Wlan.WlanBssEntry wlanBssEntry in wlanBssEntries)
                {
                    byte[] macAddr    = wlanBssEntry.dot11Bssid;
                    var    macAddrLen = (uint)macAddr.Length;
                    var    str        = new string[(int)macAddrLen];
                    for (int i = 0; i < macAddrLen; i++)
                    {
                        str[i] = macAddr[i].ToString("x2");
                    }
                    string mac = string.Join("", str);
                    Console.WriteLine(mac);
                }
            }

            wifi = new Wifi();
            wifi.ConnectionStatusChanged += wifi_ConnectionStatusChanged;

            if (wifi.NoWifiAvailable)
            {
                Console.WriteLine("\r\n-- NO WIFI CARD WAS FOUND --");
            }

            string command = "";

            do
            {
                Console.WriteLine("\r\n-- COMMAND LIST --");
                Console.WriteLine("L. List access points");
                Console.WriteLine("C. Connect");
                Console.WriteLine("D. Disconnect");
                Console.WriteLine("S. Status");
                Console.WriteLine("X. Print profile XML");
                Console.WriteLine("R. Remove profile");
                Console.WriteLine("I. Show access point information");
                Console.WriteLine("Q. Quit");

                command = Console.ReadLine().ToLower();

                Execute(command);
            } while (command != "q");
        }
示例#10
0
文件: Program.cs 项目: Nivade/insite
 static void Main(string[] args)
 {
     Console.WriteLine("Input ssid:");
     string ssid = Console.ReadLine();
     int length = ssid.Length;
     // This is for the comparison between ssids. The ssid length is always 32, so this one also has to be that long.
     for (int i = 0; i < (32 - length); i++)
     {
         ssid += '\0';
     }
     WlanClient client = new WlanClient();
     begin:
     WifiDetection(client, ssid);
     System.Threading.Thread.Sleep(5000);
     goto begin;
 }
示例#11
0
        public static Wlan.WlanConnectionAttributes GetWlanConnectInfo()
        {
            WlanClient wlanClientTmp = new WlanClient();

            WlanClient.WlanInterface wlanInterfaceTmp = wlanClientTmp.Interfaces[0];
            if (wlanInterfaceTmp.IsWlanConnection())
            {
                Wlan.WlanConnectionAttributes wlanAttr = wlanInterfaceTmp.CurrentConnection;
                if (wlanAttr.isState == Wlan.WlanInterfaceState.Connected)
                {
                    //string macAddress = GetMacAddress(wlanAttr.wlanAssociationAttributes.dot11Bssid);
                    //tbState.Text = String.Format("当前设备已连接到Wlan: {0}, Mac地址: {1} IPv4地址: {2}", wlanAttr.profileName, macAddress, PathUtil.GetIPv4());
                    return(wlanAttr);
                }
            }
            return(new Wlan.WlanConnectionAttributes());
        }
 private void Form1_Load(object sender, EventArgs e)
 {
     client = new WlanClient();
     hosts = new List<Wlan.WlanAvailableNetwork>();
     if (client.Interfaces.Length < 1)
     {
         if (MessageBox.Show("Keine WLan-Gerät verfügbar.\n Fortfahren?", "Fehler", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
         {
             MessageBox.Show("Bevor sie konfigurieren müssen sie einen WLan-Gerät anschließen!");
         }
         else
         {
             this.Close();
             return;
         }
     }
 }
示例#13
0
        public static void wifiFind(ListView wifiList)
        {
            wifiList.Items.Clear();
            WlanClient client = new WlanClient();

            foreach (WlanClient.WlanInterface wlanInterface in client.Interfaces)
            {
                Wlan.WlanAvailableNetwork[] networks = wlanInterface.GetAvailableNetworkList(0);
                foreach (Wlan.WlanAvailableNetwork network in networks)
                {
                    Wlan.Dot11Ssid ssid        = network.dot11Ssid;
                    string         networkName = Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
                    ListViewItem   item        = new ListViewItem(networkName);
                    item.SubItems.Add(network.wlanSignalQuality + "%");
                    if (!wifiList.Items.Contains(item))
                    {
                        wifiList.Items.Add(item);
                    }
                }
            }
        }
示例#14
0
        public MainWindow()
        {
            InitializeComponent();

            if (!File.Exists("rules.bin"))
                WriteRules();

            var formatter = new BinaryFormatter();
            var stream = new System.IO.FileStream("rules.bin", FileMode.Open, FileAccess.Read);
            rules = (ObservableCollection<ProxyRule>)formatter.Deserialize(stream);
            stream.Close();

            tb_icon.Icon = new System.Drawing.Icon("favicon.ico");
            tb_icon.TrayMouseDoubleClick += Tray_DoubleClick;
            this.StateChanged += Window_StateChanged;
            rule_list.ItemsSource = rules;
            //TODO: Show what SSID it thinks it's connected to on the window
            string inter;
            var client = new WlanClient();
            if(client.Interfaces.Count() > 1)
            {
                var inters = new Interfaces();
                inters.ShowDialog();
                inter = inters.GetInterface();
            }
            else if (client.Interfaces.Count() == 1)
            {
                inter = client.Interfaces[0].InterfaceDescription;
            }
            else
            {
                inter = null;
            }

            if (inter != null)
            {
                StartPoller(inter);
            }
        }
示例#15
0
文件: Program.cs 项目: Nivade/insite
        private static void WifiDetection(WlanClient client, string ssid)
        {
            foreach (WlanClient.WlanInterface interfacetoscan in client.Interfaces)
            {
                interfacetoscan.Scan();
            }
            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {

                Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();

                foreach (Wlan.WlanBssEntry network in wlanBssEntries)
                {
                    int rss = network.rssi;
                    byte[] macAddr = network.dot11Bssid;
                    string tMac = "";

                    for (int i = 0; i < macAddr.Length; i++)
                    {

                        tMac += macAddr[i].ToString("x2").PadLeft(2, '0').ToUpper();

                    }
                    string SSID = Encoding.ASCII.GetString(network.dot11Ssid.SSID).ToString();

                    if (ssid == SSID)
                    {

                        Data += network.linkQuality;
                        Data += ";";
                        Data += tMac;
                        Data += ";";
                    }
                }
            }
            Console.WriteLine("data: " + Data);
            Data = null;
        }
示例#16
0
文件: WiFi.cs 项目: cboseak/GUI
        public List<KeyValuePair<string, uint>> networksList()
        {
            WlanClient client = new WlanClient();

            List<KeyValuePair<string, uint>> myNetworks = new List<KeyValuePair<string, uint>>();
            string tmpNWname;
            uint signalStrength = 999;

            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {

                Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();
                foreach (Wlan.WlanBssEntry network in wlanBssEntries)
                {
                    /*
                    byte[] macAddr = network.dot11Bssid;
                    string tMac = "";
                    for (int i = 0; i < macAddr.Length; i++)
                    {
                       tMac += macAddr[i].ToString("x2").PadLeft(2, '0').ToUpper();
                    }
                    */

                    // Console.WriteLine("Found network with SSID: {0}.", GetStringForSSID(network.dot11Ssid));
                    // Console.WriteLine("Signal: {0}%.", network.linkQuality);
                    tmpNWname = GetStringForSSID(network.dot11Ssid);
                    signalStrength = network.linkQuality;

                    myNetworks.Add(new KeyValuePair<string, uint>(tmpNWname, signalStrength));

                    //Console.WriteLine("BSS Type: {0}.", network.dot11BssType);
                    //Console.WriteLine("BSS id: {0}.", network.dot11Bssid.ToString());
                    //Console.WriteLine("MAC: {0}.", tMac);

                }
            }
            return myNetworks;
        }
示例#17
0
        private void Update_Click(object sender, RoutedEventArgs e)
        {
            CollecitonWiFi.Items.Clear();
            WlanClient client = new WlanClient();

            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList(0);

                for (int i = 0; i < wlanBssEntries.Length; i++)
                {
                    var network = wlanBssEntries.ElementAt(i);
                    CollecitonWiFi.Items.Add(new
                    {
                        id = i.ToString(),
                        SSID = System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).Trim((char)0),
                        Quality = network.wlanSignalQuality.ToString() + "%",
                        securityType = network.dot11DefaultAuthAlgorithm.ToString().Trim((char)0),
                        encryptionType = network.dot11DefaultCipherAlgorithm.ToString().Trim((char)0)
                    });
                }

            }
        }
        public static IEnumerable<string> GetActiveConnections()
        {
            try
            {
                if (client.Interfaces == null)
                    client = null;
            }
            catch
            {
                client = null;
            }

            try
            {
                if (client == null)
                    client = new WlanClient();
            }
            catch
            {
                yield break;
            }

            foreach (var wlanIface in client.Interfaces)
            {
                Wlan.WlanAvailableNetwork[] networks = null;
                try
                {
                    networks = wlanIface.GetAvailableNetworkList(0);
                }
                catch { continue; }

                foreach (var network in networks)
                    if (network.networkConnectable)
                        yield return GetStringForSSID(network.dot11Ssid);
            }
        }
        private void frmConnectWifiAdaptor_Load(object sender, EventArgs e)
        {
            //ShowNetworkInterfaces();
            WlanClient client = new WlanClient();
            WlanClient.WlanInterface[] interfaces = client.Interfaces;
            if (interfaces.Length == 1)
            {
                lblWifiAdaptor.Text = interfaces[0].InterfaceDescription;
                SelectedInterface = interfaces[0];
            }

            interfaces[0].WlanConnectionNotification += new WlanClient.WlanInterface.WlanConnectionNotificationEventHandler(frmConnectWifiAdaptor_WlanConnectionNotification);
            interfaces[0].WlanNotification += new WlanClient.WlanInterface.WlanNotificationEventHandler(frmConnectWifiAdaptor_WlanNotification);
            interfaces[0].Scan();
            Wlan.WlanAvailableNetwork[] networks = SelectedInterface.GetAvailableNetworkList(Wlan.WlanGetAvailableNetworkFlags.IncludeAllManualHiddenProfiles);
            ListNetworks = new List<Wlan.WlanAvailableNetwork>();
            foreach (Wlan.WlanAvailableNetwork network in networks)
            {
                //string SSIDname = GetStringForSSID(network.dot11Ssid);
                if (GetStringForSSID(network.dot11Ssid) != "")
                {
                    //network.profileName = GetStringForSSID(network.dot11Ssid);
                    ListNetworks.Add(network);
                    //listBox1.Items.Add(network);
                    //string name = network.ProfileName;
                }
            }
            listBox1.DataSource = ListNetworks;
            listBox1.DisplayMember = "ProfileName";
            listBox1.SelectedItem = ListNetworks[0];

            if (CheckForInternetConnection())
                tbStatus.Text = "Connected!";
            else
                tbStatus.Text = "Waiting...";
        }
示例#20
0
        void UpdateSSIDs()
        {
            if (_ssids.Count > 0) _ssids.Clear();
            WlanClient wlan = null;
            try
            {
                wlan = new WlanClient();
            }
            catch (Exception e)
            {
                MessageBox.Show("Error while initializing WlanClient (I probably can't see your Wifi interface):\n" + e.ToString()); //TODO: more graceful exception handling.
                return;
            }

            foreach (var inter in wlan.Interfaces)
            {
                Wlan.Dot11Ssid ssid;
                try
                {
                    ssid = inter.CurrentConnection.wlanAssociationAttributes.dot11Ssid;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    return;
                }

                _ssids.Add(new String(Encoding.ASCII.GetChars(ssid.SSID, 0, (int)ssid.SSIDLength)));
            }
        }
示例#21
0
        public static string getWifiSsid()
        {
            string ret = null;

            try
            {
                using (WlanClient wlan = new WlanClient())
                {
                    Collection<String> connectedSsids = new Collection<string>();

                    foreach (WlanClient.WlanInterface wlanInterface in wlan.Interfaces)
                    {
                        if (wlanInterface.InterfaceState == Wlan.WlanInterfaceState.Connected)
                        {
                            Wlan.Dot11Ssid ssid = wlanInterface.CurrentConnection.wlanAssociationAttributes.dot11Ssid;
                            connectedSsids.Add(new String(Encoding.ASCII.GetChars(ssid.SSID, 0, (int)ssid.SSIDLength)));
                        }
                    }
                    if (connectedSsids.Count > 0)
                        ret = connectedSsids[0];
                    else
                        ret = null;
                }
            }
            catch {
                ret = null;
            }

            return ret;
        }
示例#22
0
        public bool identify(String documentText)
        {
            bool result = true;

            WlanClient wlan = new WlanClient();
            Wlan.Dot11Ssid ssid;
            String ssidString = "";
            foreach (WlanClient.WlanInterface wlanInterface in wlan.Interfaces) {
                ssid = wlanInterface.CurrentConnection.wlanAssociationAttributes.dot11Ssid;
                ssidString = new String(Encoding.ASCII.GetChars(ssid.SSID, 0, (int)ssid.SSIDLength));
            }

            if (SSID.Equals(ssidString)) {
                foreach (String fingerprint in this.fingerprints) {
                    if (!documentText.Contains(fingerprint)) {
                        result = false;
                    }
                }
            }
            else {
                result = false;
            }

            return result;
        }
示例#23
0
        private void PasswordGuessing(ItemWiFi itemWiFi)
        {
            string selectedWiFi = itemWiFi.SSID;

            try
            {
                WlanClient client = new WlanClient();

                foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
                {
                    Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList(0);

                    var networks = wlanBssEntries.Where(x => selectedWiFi == System.Text.ASCIIEncoding.ASCII.GetString(x.dot11Ssid.SSID).Trim((char)0));

                    if (networks.Any())
                    {
                        Wlan.WlanAvailableNetwork network = networks.ElementAt(0);

                        String profileName = System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).Trim((char)0);

                        String strTemplate = "";
                        String authentication = "";

                        switch ((int)network.dot11DefaultAuthAlgorithm)
                        {
                            case 1: // Open
                                break;
                            case 3: // WEP
                                break;
                            case 4: // WPA_PSK
                                for (int i = 0; i < pass.Count; i++)
                                {
                                    strTemplate = Properties.Resources.WPAPSK;
                                    authentication = "WPAPSK";
                                    String encryption = network.dot11DefaultCipherAlgorithm.ToString().Trim((char)0);
                                    String key = pass[i];
                                    String profileXml = String.Format(strTemplate, profileName, authentication, encryption, key);

                                    wlanIface.SetProfile(Wlan.WlanProfileFlags.AllUser, profileXml, true);
                                    wlanIface.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName);

                                    Thread.Sleep(1000); // ??

                                    if (wlanIface.InterfaceState == Wlan.WlanInterfaceState.Connected)
                                    {
                                        itemWiFi.password = pass[i];
                                        Console.WriteLine("WiFi : " +itemWiFi.SSID + ", Password : " + pass[i]);
                                        return;
                                    }
                                    else
                                    {
                                        Console.WriteLine(pass[i]);
                                    }
                                }
                                break;
                            case 7: //RSNA_PSK
                                break;
                            default:
                                break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#24
0
文件: Prey.cs 项目: josuearq/prey_win
 /// <summary>
 /// Recolecta toda la infromación Wifi que hay disponible.
 /// </summary>
 /// <returns>Devuelve la información que se ha recolectado en una manera legible.</returns>
 public static string ObternetInformacionWifi()
 {
     Log log = new Log();
     WlanClient clienteWifi;
     // Determinar si hay adaptadores inalámbricos disponibles.
     try
     {
         clienteWifi = new WlanClient();
     }
     catch
     {
         throw new WlanNoDisponibleException("Los adaptadores inalámbricos parecen no estar disponibles");
     }
     log.AsociarSubtituloSeccion(new SubTituloLog("Interfaces de red wireless", "Interfaces"));
     uint contador = 1;
     uint contador2 = 1;
     string identificadorInterfaz;
     // Obtención de interfaces.
     foreach (WlanClient.WlanInterface interfaz in clienteWifi.Interfaces)
     {
         identificadorInterfaz = String.Format("IDI{0}", contador);
         log.AsociarSubtituloSeccion(new SubTituloLog(String.Format("Interfaz {0}", contador.ToString()), identificadorInterfaz));
         interfaz.Scan();
         Wlan.WlanAvailableNetwork[] redesDisponibles = interfaz.GetAvailableNetworkList(0);
         contador2 = 1;
         // Obtención de información de las redes por interfaz.
         foreach (Wlan.WlanAvailableNetwork redDisponible in redesDisponibles)
         {
             log.AgregarEntrada(new EntradaLog(
                 identificadorInterfaz,
                 String.Format("Red {0} -> Nombre", contador2.ToString()),
                 Encoding.ASCII.GetString(redDisponible.dot11Ssid.SSID)
             ));
             log.AgregarEntrada(new EntradaLog(
                 identificadorInterfaz,
                 String.Format("Red {0} -> Cifrado", contador2.ToString()),
                 redDisponible.dot11DefaultCipherAlgorithm.ToString()
             ));
             log.AgregarEntrada(new EntradaLog(
                 identificadorInterfaz,
                 String.Format("Red {0} -> Autenticación", contador2.ToString()),
                 redDisponible.dot11DefaultAuthAlgorithm.ToString()
             ));
             log.AgregarEntrada(new EntradaLog(
                 identificadorInterfaz,
                 String.Format("Red {0} -> Intensidad de señal", contador2.ToString()),
                 redDisponible.wlanSignalQuality.ToString()
             ));
             log.AgregarEntrada(new EntradaLog(
                 identificadorInterfaz,
                 String.Format("Red {0} -> ¿Puede conectarse?", contador2.ToString()),
                 (redDisponible.networkConnectable) ? "Si" : "No"
             ));
             if (!redDisponible.networkConnectable)
                 log.AgregarEntrada(new EntradaLog(
                     identificadorInterfaz,
                     String.Format("Red {0} -> Sin conexión", contador2.ToString()),
                     redDisponible.wlanNotConnectableReason.ToString()
                 ));
             contador2++;
         }
         contador++;
     }
     return log.ObtenerLogEnFormato("Información de la red inalámbrica");
 }
示例#25
0
 void ConnectNewSecureNetwork(string ssid, string key, WlanClient.WlanInterface nic, Wlan.WlanAvailableNetwork network)
 {
   var log = ServiceRegistration.Get<ILogger>();
   log.Info("WifiConfiguration: Building new Profile to connect to WLAN '{0}'", ssid);
   string profileXml = Helper.GetProfileXml(ssid, key, network.dot11DefaultAuthAlgorithm, network.dot11DefaultCipherAlgorithm);
   if (profileXml != null)
   {
     string error = null;
     try
     {
       Wlan.WlanReasonCode reasonCode = nic.SetProfile(Wlan.WlanProfileFlags.User, profileXml, true);
       if (reasonCode != Wlan.WlanReasonCode.Success) error = reasonCode.ToString();
     }
     catch (Exception ex)
     {
       error = ex.Message;
     }
     if (error == null)
     {
       nic.ConnectSynchronously(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, ssid, CONNECTION_TIMEOUT_SECONDS);
     }
     else
     {
       log.Warn("WifiConfiguration: Setting Profile for WLAN '{0}' failed: '{1}'", ssid, error);
       ServiceRegistration.Get<IDialogManager>().ShowDialog("[Dialogs.ErrorHeaderText]", error, DialogType.OkDialog, false, DialogButtonType.Ok);
     }
   }
   else
   {
     // don't know how to build profile
     log.Warn("WifiConfiguration: No known Mapping to create Profile '{0}' for AuthAlg: '{1}' and CipherAlg: '{2}'", ssid, network.dot11DefaultAuthAlgorithm, network.dot11DefaultCipherAlgorithm);
     ServiceRegistration.Get<IDialogManager>().ShowDialog("[Dialogs.ErrorHeaderText]", "Unable to build profile. Connect in Windows.", DialogType.OkDialog, false, DialogButtonType.Ok);
   }
 }
示例#26
0
 public WifiScanner()
 {
     Client = new WlanClient();
     List   = new Dictionary <string, int>();
     RefrashList();
 }
示例#27
0
        private void wifi_checkBox_Checked(object sender, RoutedEventArgs e)
        {
            if (wifi_checkBox.IsChecked == true)
            {
                //punt info in list grid
                var gridView = new GridView();
                this.wifi_listView.View = gridView;

                gridView.Columns.Add(new GridViewColumn
                {
                    Header = "Accesspoints",
                    DisplayMemberBinding = new System.Windows.Data.Binding("AccesPoint")
                });
                gridView.Columns.Add(new GridViewColumn
                {
                    Header = "Signal Strength",
                    DisplayMemberBinding = new System.Windows.Data.Binding("Signal")
                });
                gridView.Columns.Add(new GridViewColumn
                {
                    Header = "BSSType",
                    DisplayMemberBinding = new System.Windows.Data.Binding("BSSType")
                });
                gridView.Columns.Add(new GridViewColumn
                {
                    Header = "MAC",
                    DisplayMemberBinding = new System.Windows.Data.Binding("MAC")
                });
                gridView.Columns.Add(new GridViewColumn
                {
                    Header = "RSSID",
                    DisplayMemberBinding = new System.Windows.Data.Binding("RSSID")
                });



                NativeWifi.WlanClient client = new NativeWifi.WlanClient();

                try
                {
                    wifi_password_label.Content = "";

                    foreach (NativeWifi.WlanClient.WlanInterface wlanIface in client.Interfaces)
                    {
                        Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();

                        foreach (Wlan.WlanBssEntry network in wlanBssEntries)
                        {
                            int    rss     = network.rssi;
                            byte[] macAddr = network.dot11Bssid;
                            string tMac    = "";

                            for (int i = 0; i < macAddr.Length; i++)
                            {
                                tMac += macAddr[i].ToString("x2").PadLeft(2, '0').ToUpper();
                            }
                            Wlan.Dot11Ssid ssid = network.dot11Ssid;

                            string networkName = System.Text.Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
                            uint   signal      = network.linkQuality;
                            string bssType     = network.dot11BssType + "";
                            string MAC         = tMac;
                            string RSSID       = rss.ToString();

                            // Populate list
                            wifi_listView.Items.Add(new wifiConnect {
                                AccesPoint = networkName, Signal = signal, BSSType = bssType, MAC = MAC, RSSID = RSSID
                            });
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else if (wifi_checkBox.IsChecked == false)
            {
                wifi_password_label.Content = "Please select connection type";
            }
        }
示例#28
0
 internal WlanInterface(WlanClient client, Wlan.WlanInterfaceInfo info)
 {
     this.client = client;
     this.info   = info;
 }
示例#29
0
 public void Dispose()
 {
     _instance = null;
     GC.SuppressFinalize(this);
     Close();
 }
示例#30
0
    /// <summary>
    /// Use this for initialization
    /// </summary>
    void Start()
    {
        Debug.Log("Start DroneObserver");
        // initialize data array
        data = new byte[width*height*3];
        cameraTexture = new Texture2D (width, height);
        // Initialize drone
        videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.RGB24, true, OnVideoPacketDecoded);
        videoPacketDecoderWorker.Start();

        droneClient = new DroneClient ("192.168.1.1");
        //droneClient = new DroneClient ("127.0.0.1");
        droneClient.UnhandledException += HandleUnhandledException;
        droneClient.VideoPacketAcquired += OnVideoPacketAcquired;
        droneClient.NavigationDataAcquired += navData => navigationData = navData;

        droneClient.FlatTrim ();

        videoPacketDecoderWorker.UnhandledException += HandleUnhandledException;
        droneClient.Start ();

        Settings settings = new Settings ();
        settings.Video.Codec = VideoCodecType.H264_720P;
        droneClient.Send (settings);
        droneClient.AckControlAndWaitForConfirmation ();

        switchDroneCamera (AR.Drone.Client.Configuration.VideoChannelType.Horizontal);

        isDroneConnected = droneClient.IsConnected;

        if(!isDroneConnected){
            Debug.LogError("Drone not Connected. Retry!!!");
        }
        if(isDroneConnected){
            Debug.LogWarning("Drone Connected!!!");
        }

        // determine connection
        wlanClient = new WlanClient();
    }
 private void Initialize()
 {
     client = new WlanClient();
     networkUtils = new NetworkUtils();
     InitializePingSender();
 }
示例#32
0
 internal WlanInterface(WlanClient client, Wlan.WlanInterfaceInfo info)
 {
     this.client = client;
     this.info = info;
 }
        private NativeWifi.Wlan.WlanAvailableNetwork? SearchForArDroneNetworkUsingInterface(WlanClient.WlanInterface wlanInterface)
        {
            NativeWifi.Wlan.WlanAvailableNetwork[] networks = wlanInterface.GetAvailableNetworkList(
                                                                                Wlan.WlanGetAvailableNetworkFlags.IncludeAllAdhocProfiles |
                                                                                Wlan.WlanGetAvailableNetworkFlags.IncludeAllManualHiddenProfiles);
            foreach (NativeWifi.Wlan.WlanAvailableNetwork network in networks)
            {
                String ssid = ByteArrayToString(network.dot11Ssid.SSID);

                if (ssid.StartsWith(droneNetworkIdentifierStart))
                    return network;
            }

            return null;
        }
示例#34
0
        public WiFiConnect(Main frmMain)
        {
            this.frmMain = frmMain;
            dSSIDs = new ConcurrentDictionary<string, SSID>();
            dAPs = new ConcurrentDictionary<string, AP>();
            lLinks = new List<SCLink>();
            dConfig = new ConcurrentDictionary<String, String>();
            localSSIDs = new ConcurrentDictionary<string,SSID>();
            dNetData = new ConcurrentDictionary<String, int>();
            wClient = new WlanClient();
            
            Load("all");

            try { Config8021X(); }
            catch (Exception ex) { log.Error("Error on WifiConnect constructor Config8021X(): " + ex.Message); }

            try { SetWirelessConnection(); }
            catch (Exception ex) { log.Error("Error on WifiConnect constructor SetWirelessConnection(): " + ex.Message); }

            int updateInterval=0, updateTimeout=300;

            String tmpUpdateInterval,tmpUpdateTimeout,tmpServerIP,tmpFilenameTemplate;
            try
            {
                if (dConfig.TryGetValue("updateInterval", out tmpUpdateInterval)) updateInterval = Convert.ToInt32(tmpUpdateInterval);
                if (dConfig.TryGetValue("serverTimeout", out tmpUpdateTimeout)) updateTimeout = Convert.ToInt32(tmpUpdateTimeout);
            }
            catch (FormatException ex) { log.Error("Error updateInterval in config is not a number, actual message: " + ex.Message); }

            updaterNetStatus = new NetStatusUpdater(20, this);
            updateNetStatusThread = new Thread(updaterNetStatus.Run);
            updateNetStatusThread.Start();

            if (dConfig.TryGetValue("serverIP", out tmpServerIP))
            {
                if(dConfig.TryGetValue("filenameTemplate", out tmpFilenameTemplate))
                {
                    updaterServer = new ServerUpdater(updateInterval, updateTimeout, tmpServerIP, tmpFilenameTemplate, this);
                    updateServerThread = new Thread(updaterServer.Run);
                }
                else log.Debug("WifiConnect constructor: filenameTemplate config value does not exist, skipping server updater");

                senderErrors = new ErrorSender(updateTimeout, tmpServerIP, this);
                sendErrorThread = new Thread(senderErrors.Run);

                senderData = new DataSender(updateTimeout, updateInterval, tmpServerIP, this);
                sendDataThread = new Thread(senderData.Run);

                bool tmpAutoUpdate = false, tmpSendErrors = false, tmpSendNetworkData = false;
                dFlags.TryGetValue("autoUpdate", out tmpAutoUpdate);
                dFlags.TryGetValue("sendErrors", out tmpSendErrors);
                dFlags.TryGetValue("sendNetworkData", out tmpSendNetworkData);

                if (tmpAutoUpdate && updateTimeout != 0) updateServerThread.Start();
                if (tmpSendErrors) sendErrorThread.Start();
                if (tmpSendNetworkData) sendDataThread.Start();
            }
            else log.Debug("WifiConnect constructor: serverIP config value does not exist, skipping server updater and senders");

        }
示例#35
-1
        public Interfaces()
        {
            InitializeComponent();

            var wlan = new WlanClient();
            foreach (var inter in wlan.Interfaces)
            {
                interfaces.Add(inter.InterfaceDescription);
            }

            ComboBox_interfaces.ItemsSource = interfaces;
            if (interfaces.Count > 0)
                ComboBox_interfaces.SelectedIndex = 0;
        }
示例#36
-2
        public Form1()
        {
            InitializeComponent();

            sectorCounter = 0;
            client = new WlanClient();
            posSystem = new Positioning();
        }
示例#37
-2
 public void wifi_dBm()
 {
     try { client = new NativeWifi.WlanClient(); }
     catch (Exception) { }
     //Load Wifi dBm Details            
     //getWiFiName();
     //getWiFiSignalQuality();
     dbmTimmer.Start();
 }