用 wpa_cli 控制你的 WIFI (無線網路)
wpa_cli
是一個用於與 wpa_supplicant
交互的命令行界面工具,當然也支持在 command line 下直接使用命令控制 WIFI,可以用來管理無線網絡接口的設定和運行狀態。這個工具非常強大,支持多種操作,如掃描無線網絡、連接到網絡、變更設定等,而我都用python 透過 wpa_cli 來控制 WIFI。
首先掃描無線網路
打開終端,並且記得要用 root 權限來執行 wpa_cli
sudo wpa_cli -i wlan1 scan sleep 5 # 給予一些時間來完成掃描 sudo wpa_cli -i wlan1 scan_results
回應如下圖
加一個網路配置
利用 ssid 和 paswword 來連線到一個已知的無線網路上,可以將下面的指令編寫成 wpa_cli_add_network.sh ,並且執行她,也可以直接使用,執行後取得的 network id 通常是一個 int 的數字,把她記起來,之後就可以透過這個 network id 來連接網路,和斷開網路
# 添加新的網絡配置 network_id=$(wpa_cli -i wlan1 add_network | awk '{print $NF}') # 設置SSID和密碼 wpa_cli -i wlan1 set_network $network_id ssid '"你的SSID"' wpa_cli -i wlan1 set_network $network_id psk '"你的密碼"' # 啟用該網絡 wpa_cli -i wlan1 enable_network $network_id # 保存配置 wpa_cli -i wlan1 save_config
連接網路以及斷開網路
# 重新連線 wpa_cli -i wlan1 reconnect #斷開連線 wpa_cli -i wlan1 disconnect
刪除網路配置
wpa_cli -i wlan1 remove_network $network_id
檢查連線是否存在
wpa_cli -i wlan1 status
得到的輸出通常如下
其中,檢查是否有連線成功,可以看 wpa_state 是否為 COMPLETED
檢查已經存在的網路設定
sudo wpa_cli -i wlan1 list_networks
輸出如下
可以用 flags CURRENT 來檢查現在是連線到那一個 network ,也可以取得 network id ,並且用他來連線
近期留言