使用C#连接到无线网络

| 我正在使用Managed WiFi API和示例代码:
string profileName = \"Cheesecake\"; // this is also the SSID
string mac = \"52544131303235572D454137443638\";
string key = \"hello\";
string profileXml = string.Format(\"<?xml version=\\\"1.0\\\"?><WLANProfile xmlns=\\\"http://www.microsoft.com/networking/WLAN/profile/v1\\\"><name>{0}</name><SSIDConfig><SSID><hex>{1}</hex><name>{0}</name></SSID></SSIDConfig><connectionType>ESS</connectionType><MSM><security><authEncryption><authentication>open</authentication><encryption>WEP</encryption><useOneX>false</useOneX></authEncryption><sharedKey><keyType>networkKey</keyType><protected>false</protected><keyMaterial>{2}</keyMaterial></sharedKey><keyIndex>0</keyIndex></security></MSM></WLANProfile>\", profileName, mac, key);
wlanIface.SetProfile( Wlan.WlanProfileFlags.AllUser, profileXml, true );
wlanIface.Connect( Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName );
我更新了代码以使用我的SSID和密钥,但是我不知道如何获取MAC地址。     
已邀请:
        PhysicalAddress类应该可以帮助您。 MSDN文章中甚至有一个代码示例,该示例从计算机上的网络接口提取MAC地址。 http://msdn.microsoft.com/zh-CN/library/system.net.networkinformation.physicaladdress.aspx 希望这可以帮助。     
        C#有一个很棒的API SimpleWifi,可以按以下方式使用:
string ssid = \"abc wifi network\";
            AccessPoint selectedAP = null;
            bool isApFound = false;

            foreach (AccessPoint ap in accessPoints)
            {
                if (ap.Name.Equals(ssid, StringComparison.InvariantCultureIgnoreCase))
                {
                    selectedAP = ap;
                    isApFound = true;
                    break;
                }                    
            }

            if(!isApFound)
            {

                MessageBox.Show(\"SSID: \" + ssid + \" not found in range.\");
                return;

            }

            // Auth
            AuthRequest authRequest = new AuthRequest(selectedAP);
            bool overwrite = true;

            if (authRequest.IsPasswordRequired)
            {
                if (selectedAP.HasProfile)
                // If there already is a stored profile for the network, we can either use it or overwrite it with a new password.
                {
                    var confirmResult = MessageBox.Show(\"A network profile already exist, do you want to use it ?\", \"Confirm Yes ?\", MessageBoxButtons.YesNo);
                    if (confirmResult == DialogResult.Yes)
                    {
                        overwrite = false;
                    }
                }

                if (overwrite)
                {
                    if (authRequest.IsUsernameRequired)
                    {

                        authRequest.Username = Microsoft.VisualBasic.Interaction.InputBox(\"Please enter Wifi username\", \"Wifi Username\", \"\", -1, -1);

                    }

                    authRequest.Password = PasswordPrompt(selectedAP);

                    if (authRequest.IsDomainSupported)
                    {
                        authRequest.Domain = Microsoft.VisualBasic.Interaction.InputBox(\"Please enter Wifi domain\", \"Wifi Domain\", \"\", -1, -1);
                    }
                }
            }

            selectedAP.ConnectAsync(authRequest, overwrite, OnConnectedComplete);
    

要回复问题请先登录注册