首頁 > 軟體

Python中pywifi模組的基本用法講解

2022-11-28 22:00:50

  跨平臺的pywifi模組支援操作無線網路卡,該模組易於使用,同時支援Windows、Linux等多個系統。pywifi模組不是Python的標準模組,需單獨安裝,同時該模組依賴comtypes模組,最好同時安裝comtypes模組,否則呼叫pywifi的函數時可能會報錯。

pip install comtypes
pip install pywifi

  pywifi模組中的類不算太多,其中主要用到的類包括PyWiFi、Profile、Interface等,詳述如下:
  PyWiFi類用於操作無線裝置,該類的主要函數interfaces返回可用的無線網路卡集合,也即Interface物件集合。
  Profile類表示無線接入點(AP),也即無線網路卡搜尋出的無線連線,一個Profile物件表示一個可以連線或可用的無線連線,Profile類的主要屬性如下表所示:

序號屬性名說明
1ssid無線網路名稱
2auth認證演演算法,包括AUTH_ALG_OPEN、.AUTH_ALG_SHARED兩種,預設為AUTH_ALG_OPEN,關於認證演演算法的介紹詳見參考文獻5
3akm授權金鑰管理方式,包括AKM_TYPE_NONE、AKM_TYPE_WPA、AKM_TYPE_WPAPSK、AKM_TYPE_WPA2、AKM_TYPE_WPA2PSK、AKM_TYPE_UNKNOWN,預設為AKM_TYPE_NONE,關於授權金鑰管理方式詳見參考文獻6-7
4cipher密碼型別,包括CIPHER_TYPE_NONE、CIPHER_TYPE_WEP、CIPHER_TYPE_TKIP、CIPHER_TYPE_CCMP、CIPHER_TYPE_UNKNOWN,預設為CIPHER_TYPE_NONE
5key無線網路連線密碼,如果密碼型別不未CIPHER_TYPE_NONE,則應設定本屬性值

  ;Interface類用於執行無線網路操作,主要包括以下函數:

序號函數名說明
1name獲取無線網路卡名稱
2scan呼叫無線網路卡掃描可用的無線網路(AP)
3scan_results獲取scan函數的掃描結果,返回的是Profile物件列表
4add_network_profile新增特定無線網路(AP)以便後續連線
5remove_network_profile移除指定的無線網路(AP)
6remove_all_network_profiles移除所有無線網路(AP)
7network_profiles獲取儲存的所有無線網路(AP)
8connect連線指定的無線網路(AP)
9disconnect斷掉當前無線網路連線
10status獲取當前無線網路連線狀態

  最後是照著參考文獻3編寫的測試程式(測試前請確保已記住當前計算機連線的wifi密碼)

import pywifi

wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]

print('interface name: ',iface.name())
print('interface status: ',iface.status())

iface.disconnect()
print('interface status: ',iface.status())

profile = pywifi.Profile()
profile.ssid = "XXXXXXX"
profile.auth = pywifi.const.AUTH_ALG_OPEN 
profile.akm.append(pywifi.const.AKM_TYPE_WPA2PSK)
profile.cipher = pywifi.const.CIPHER_TYPE_CCMP
profile.key = 'XXXXXXX'
iface.remove_all_network_profiles()
tep_profile = iface.add_network_profile(profile)
iface.connect(tep_profile)

sleep(5)
print('interface status: ',iface.status())

參考文獻
[1]https://github.com/awkman/pywifi
[2]https://github.com/awkman/pywifi/blob/master/DOC.md
[3]https://blog.csdn.net/Feng_liangmu/article/details/122911002
[4]https://docs.python.org/zh-cn/3/index.html
[5]https://www.likecs.com/show-655827.html
[6]https://www.likecs.com/show-655827.html
[7]https://code84.com/739564.html

到此這篇關於Python中pywifi模組的基本用法的文章就介紹到這了,更多相關Python pywifi模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com