рдиреЗрдЯрд╡рд░реНрдХ рдЦреЛрдЬрдирд╛ рдФрд░ C # рдореЗрдВ рд╡рд╛рдИ-рдлрд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рд╡рд╛рдИ-рдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛, рддреЛ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рдереА, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдбрд╝рдХ рдкрд░ рдПрдХ рдмрдбрд╝рд╛ рдкрддреНрдерд░ рдмрди рдЧрдпрд╛ред

рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ, рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, C # - WindowsFormsApplication рдореЗрдВ Visual Studio рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ "Wifi" рдХрд╣рд╛ред

рднрд╛рдЧ рдПрдХ: рдЙрдкрд▓рдмреНрдз рдиреЗрдЯрд╡рд░реНрдХ рдвреВрдБрдврдирд╛


рддреЛ, рд╣рдо рдкреНрд░рдкрддреНрд░ рджреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдкрд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ:

рд╣рдореЗрдВ рдмрд╕ рдпрд╣реА рдЪрд╛рд╣рд┐рдП, рдореЗрд░реА рдЦрд┐рдбрд╝рдХреА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
рдЫрд╡рд┐
рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛ рдирдИ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдпрд╣ рдиреЗрдЯрд┐рд╡ рд╡рд╛рдИрдлрд╛рдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╣реАрдВ рдкрд╛рдпрд╛ред
рдпрд╣рд╛рдВ рд╕реЗ рд╕реВрддреНрд░ рд▓рд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдЙрди рдирд╛рдореЛрдВ рдХреЗ рдирд╛рдо рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using NativeWifi; 


рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
 WlanClient client = new WlanClient(); foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList( 0 ); // ,          istNet.Items.Clear(); foreach (Wlan.WlanAvailableNetwork network in wlanBssEntries) { //     ListViewItem listItemWiFi = new ListViewItem(); //       ,      - Trim((char)0) 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)); //   //       listNet.Items.Add(listItemWiFi); } } 


рдЕрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдореЗрд░рд╛ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рджрд╛рдИрдВ рдУрд░ рдбрд╛рд░реНрдХ рдмрд╛рд░ рд╡рд┐рдВрдбреЛрдЬ 8 рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рд╣реИ:
рдЫрд╡рд┐

рднрд╛рдЧ рджреЛ: рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛


рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреЗ рд╕рд╛рде рд╣рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓рд╛ рд╣реИред
рдПрдХ рдФрд░ рдмрдЯрди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝реЗрдВ:
 try { WlanClient client = new WlanClient(); foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList(0); foreach (Wlan.WlanAvailableNetwork network in wlanBssEntries) { String profileName = System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).Trim((char)0); //      if (listNet.SelectedItems[0].Text.Equals(profileName)) { String strTemplate=""; String authentication=""; switch ((int)network.dot11DefaultAuthAlgorithm) { case 1: // Open break; case 3: // WEP break; case 4: // WPA_PSK strTemplate = Properties.Resources.WPAPSK; authentication = "WPAPSK"; String encryption = network.dot11DefaultCipherAlgorithm.ToString().Trim((char)0); //    String key = "0000000000"; 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); break; default: break; } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } 

рдореИрдВ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╕рдордЭрд╛рдКрдВрдЧрд╛, рдпрд╣ рдкрдВрдХреНрддрд┐:
 String profileXml = String.Format(strTemplate, profileName, authentication, encryption, key); 

рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ (strTemplate) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 <?xml version="1.0"?> <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> <name>{0}</name> <SSIDConfig> <SSID> <name>{0}</name> </SSID> </SSIDConfig> <connectionType>ESS</connectionType> <connectionMode>manual</connectionMode> <MSM> <security> <authEncryption> <authentication>{1}</authentication> <encryption>{2}</encryption> <useOneX>false</useOneX> </authEncryption> <sharedKey> <keyType>passPhrase</keyType> <protected>false</protected> <keyMaterial>{3}</keyMaterial> </sharedKey> </security> </MSM> </WLANProfile> 

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреМрди рд╕рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
http://msdn.microsoft.com/en-US/library/windows/desktop/aa369853(v=vs.85).aspx

рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдПрдХреНрд╕рдПрдордПрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдбреЗрдЯрд╛ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ (рдиреЗрдЯрд╡рд░реНрдХ рдХреБрдВрдЬреА) рдФрд░ рдкрд╣рд▓реЗ рдкрд╛рдпрд╛ (рдирд╛рдо, рд╕реБрд░рдХреНрд╖рд╛, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди), рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реВрдЪреА рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░рд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХрд┐рд╕ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
рдЖрдк Visual Studio 2012 рдореЗрдВ рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In181251/


All Articles