原文:github.com/awkman/pywifi/blob/master/DOC.md
PyWiFi學習文檔
PyWiFi中定義了以下常量
在使用PyWiFi之前,應先 import pywifi
接口狀態(tài)
Interface.status() 將返回以下狀態(tài)代碼之一
const.IFACE_DISCONNECTED #4
const.IFACE_SCANNING #1
const.IFACE_INACTIVE #2
const.IFACE_CONNECTING #3
const.IFACE_CONNECTED #0
認證算法
身份驗證算法應分配到一個 Profile 中
在正常情況下,幾乎所有AP都使用 開放 算法。
const.AUTH_OPEN
const.AUTH_SHARED
密鑰管理類型
密鑰管理類型應分配給一個 Profile.
對于普通AP,如果
- AP沒有安全設置,請將配置文件akm設置為
AKM_TYPE_NONE. - AP處于WPA模式時,將配置文件akm設置為
AKM_TYUPE_WPAPSK. - AP處于WPA2模式時,將配置文件akm設置為
AKM_TYUPE_WPA2PSK.
AKM_TYPE_WPA 和AKM_TYPE_WPA2 被企業(yè)AP所使用。
const.AKM_TYPE_NONE
const.AKM_TYPE_WPA
const.AKM_TYPE_WPAPSK
const.AKM_TYPE_WPA2
const.AKM_TYPE_WPA2PSK
密碼類型
如果akm不可用,則應將密碼類型設置為Profile AKM_TYPE_NONE。
你也可以參考要連接到的AP的設置。
const.CIPHER_TYPE_NONE
const.CIPHER_TYPE_WEP
const.CIPHER_TYPE_TKIP
const.CIPHER_TYPE_CCMP
網(wǎng)絡配置文件
Profile是我們要連接到的AP的配置。
配置文件的字段如下所示:
-
ssid- AP的ssid。 -
auth- AP的認證算法。 -
akm- AP的密鑰管理類型。 -
cipher- AP的密碼類型。 -
key(optinoal) - (optinoal) - AP的秘鑰。
如果密碼不正確,則應設置CIPHER_TYPE_NONE選項
例如:
import pywifi
profile = pywifi.Profile()
profile.ssid = 'testap'
profile.auth = const.AUTH_ALG_OPEN
profile.akm.append(const.AKM_TYPE_WPA2PSK)
profile.cipher = const.CIPHER_TYPE_CCMP
profile.key = '12345678'
wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]
profile = iface.add_network_profile(profile)
iface.connect(profile)
接口
Interface 指我們用于執(zhí)行的Wi-Fi接口
Wi-Fi操作 (例如: 掃描、連接、斷開......).
獲取接口信息
通常,平臺中只有一個Wi-Fi接口。
因此,使用索引 0 獲得Wi-Fi接口。
import pywifi
wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]
Interface.name()
- 獲取接口名字。
Interface.scan()
- 觸發(fā)接口以掃描AP。
Interface.scan_results()
- 獲取上一次觸發(fā)掃描的結果。
- 將返回 Profile 列表。
注: 因為每個Wi-Fi接口的掃描時間是不同的。
2~8秒后調用scan_results()會比直接調用scan()更安全。
Interface.add_network_profile(profile)
添加AP配置文件以供以后連接。
Interface.remove_all_network_profiles()
刪除所有AP配置文件。
Interface.network_profiles()
通過返回Profile列表獲取所有保存的AP配置文件。
Interface.connect(profile)
通過給定的profile連接到指定的AP。
注: 作為目前的設計, add_network_profile(profile) 應該在connect(profile) 之前被調用。
Interface.disconnect()
斷開當前AP連接。
Interface.status()
獲取當前狀態(tài)的狀態(tài)。