[英]C# Connect to Wifi Network with Managed Wifi API
我想知道是否可以使用 Managed Wifi API 連接到 wifi 網絡?
基本上,是的。
也許你應該花幾分鍾搜索一下。 從Managed Wifi API codeplex 頁面:
該庫使用本機 Wifi API,...
所以要去 Native Wifi API: MSDN
連接到無線網絡或斷開無線網絡。 請參閱 WlanConnect 和 WlanDisconnect。
此外,在 Managed Wifi APIWlanApi.cs的源代碼中:
/// <summary>
/// Requests a connection (association) to the specified wireless network.
/// </summary>
/// <remarks>
/// The method returns immediately. Progress is reported through the <see cref="WlanNotification"/> event.
/// </remarks>
public void Connect(Wlan.WlanConnectionMode connectionMode, Wlan.Dot11BssType bssType, string profile)
{
Wlan.WlanConnectionParameters connectionParams = new Wlan.WlanConnectionParameters();
connectionParams.wlanConnectionMode = connectionMode;
connectionParams.profile = profile;
connectionParams.dot11BssType = bssType;
connectionParams.flags = 0;
Connect(connectionParams);
}
而網站的獨特樣本就是這樣做的! 樣本
static void Main( string[] args )
{
WlanClient client = new WlanClient();
foreach ( WlanClient.WlanInterface wlanIface in client.Interfaces )
{
// Lists all networks with WEP security
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList( 0 );
foreach ( Wlan.WlanAvailableNetwork network in networks )
{
if ( network.dot11DefaultCipherAlgorithm == Wlan.Dot11CipherAlgorithm.WEP )
{
Console.WriteLine( "Found WEP network with SSID {0}.", GetStringForSSID(network.dot11Ssid));
}
}
// Retrieves XML configurations of existing profiles.
// This can assist you in constructing your own XML configuration
// (that is, it will give you an example to follow).
foreach ( Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles() )
{
string name = profileInfo.profileName; // this is typically the network's SSID
string xml = wlanIface.GetProfileXml( profileInfo.profileName );
}
// Connects to a known network with WEP security
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 );
}
}
祝你有美好的一天!
Windows 10 中有一些 API 可以做到這一點。
請參閱MSDN 上的 WiFiAdapter 類和GitHub 上的一些示例代碼
我在托管 API 上看到的好處是您不必處理創建 XML 配置文件來連接到新網絡的工作。 實際上,您只需輸入密碼即可連接到網絡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.