相信有不少小伙伴都遇到過(guò)無(wú)法連接到特定 bssid 的 wi-fi 熱點(diǎn)的問(wèn)題。php小編新一接下來(lái)就為大家?guī)?lái)詳細(xì)的解決教程,幫助大家輕松連接到指定的無(wú)線網(wǎng)絡(luò)。
一、win10怎么連接指定BSSID的wifi熱點(diǎn)?
通過(guò)BSSID連接WiFi
1.0 概述
有三種方法可以實(shí)現(xiàn)通過(guò)指定BSSID連接WiFi: 1. 使用免費(fèi)閉源軟件 2. 使用開(kāi)源項(xiàng)目 3. 調(diào)用Windows API
2.0 免費(fèi)閉源軟件
2.1 NetSetMan
NetSetMan – Your Network Settings Manager
(1)官網(wǎng)主頁(yè)
(2)該軟件的WiFi管理工具可以做到連接指定BSSID
(3)安裝信息
(4)軟件使用
GUI模式下使用
①下載安裝包https://www.netsetman.com/netsetman.exe,并完成安裝,運(yùn)行程序②打開(kāi)WiFi管理頁(yè),WiFi列表中第一行是已連接的WiFi,如果列表顯示的WiFi很少,可以點(diǎn)擊掃描來(lái)手動(dòng)掃描WiFi③取消勾選下方的第二個(gè)選項(xiàng),關(guān)閉自動(dòng)切換④雙擊任意一個(gè)AP即可切換,如果失敗可再多嘗試幾次,或者重啟程序。⑤命令行運(yùn)行 netsh wlan show interfaces 查看所連WiFi的BSSID,顯示已連接到指定BSSID的WiFi
命令行模式下使用
由于軟件命令行支持很少,需要先在GUI模式下設(shè)置配置文件,再在命令行中調(diào)用該配置
先在GUI模式下生成配置,如圖:
①打開(kāi)配置選項(xiàng)卡②選擇網(wǎng)絡(luò)接口③勾選WiFi復(fù)選框④點(diǎn)擊下拉列表,選擇“通過(guò)MAC地址連接”⑤在彈窗中輸入BSSID后確定⑥點(diǎn)擊激活,保存設(shè)置⑦記住配置名(這里是profile1),下面要用到
在命令行激活該配置,這里以上一步設(shè)置的”profile1″配置為例,在軟件的同級(jí)目錄下運(yùn)行netsetman.exe -ah “profile1″即可實(shí)現(xiàn)在后臺(tái)連接上文所配置的指定的WiFi。
(5)優(yōu)點(diǎn)
多語(yǔ)言支持輕量級(jí),僅17MB這是一個(gè)功能強(qiáng)大網(wǎng)絡(luò)管理工具,連接WiFi僅僅只是這個(gè)軟件的一個(gè)小功能,軟件還提供了其他功能,比如設(shè)置IP、網(wǎng)關(guān)、DNS、修改MAC地址、IP掃描等等。
(6)缺點(diǎn)
主要是使用GUI進(jìn)行操作,命令行支持不足,命令行操作不夠靈活
2.2 WiFiInfoView
Scans wireless networks in your area
(1)官網(wǎng)主頁(yè)
(2)軟件使用
下載壓縮包解壓后即可運(yùn)行,無(wú)需安裝。
GUI模式下使用選中一個(gè)WiFi后按F2即可連接命令行模式下:連接SSID為CMCC-45u0,BSSID為50-FA-84-3E-D8-93的WiFi,輸入WifiInfoView.exe /ConnectAP “CMCC-45u0” “50-FA-84-3E-D8-93″即可連接。
(3)優(yōu)點(diǎn)
輕量級(jí)軟件,軟件僅1MB自動(dòng)實(shí)時(shí)進(jìn)行WiFi掃描,WiFi列表刷新快,時(shí)效性高能獲取WiFi更詳細(xì)的信息提供了足夠的命令行支持,方便編寫(xiě)腳本實(shí)現(xiàn)自動(dòng)化
3.0 開(kāi)源項(xiàng)目 winwifimanager
https://github.com/jamestut/winwifimanager
實(shí)現(xiàn)原理:
調(diào)用Windows API
4.0 調(diào)用Windows API
通過(guò)學(xué)習(xí)上文提到的開(kāi)源項(xiàng)目,可以發(fā)現(xiàn)連接指定BSSID的WiFi是通過(guò)調(diào)用Windows API實(shí)現(xiàn)的,其核心函數(shù)是wlanapi.h中的WlanConnect函數(shù)。推測(cè)上文的閉源軟件也調(diào)用了這個(gè)API。
微軟官方文檔:
WlanConnect function (wlanapi.h) – Win32 apps
接下來(lái)用C語(yǔ)言演示一個(gè)使用該函數(shù)連接指定BSSID的WiFi的demo:
#define UNICODE#define _UNICODE#include #include #include int main(int argc, char *argv[]) { char *bssid_str; size_t len; WCHAR *profile_str; HANDLE handle; GUID guid; DWORD dwNegotiatedVersion; WLAN_INTERFACE_INFO_LIST *iface_list; NDIS_OBJECT_HEADER header; DOT11_BSSID_LIST bssidList; DOT11_MAC_ADDRESS bssid; WLAN_CONNECTION_PARAMETERS params; if (argc InterfaceInfo[iface_list->dwIndex].InterfaceGuid; // set parameters header.Type = NDIS_OBJECT_TYPE_DEFAULT; header.Revision = DOT11_BSSID_LIST_REVISION_1; header.Size = sizeof(DOT11_BSSID_LIST); bssidList.Header = header; bssidList.uNumOfEntries = 1; bssidList.uTotalNumOfEntries = 1; // get BSSID from bssid_str for (int i=0; i
路由網(wǎng)(www.lu-you.com)其它相關(guān)文章!