Pywifi用法-python


Pywifi - python用法

凉沐流風 - 楓

一、目錄  

 1.目錄

 2.pywifi的介紹與下載

 3.pywifi基礎

 4.pywifi詳細教程

 5.后言

 6.原本教程(英文版)

 

 二、pywifi的介紹與下載  

1.介紹:pywifi是在python中一個用於操作無線接口的模塊,可以跨平台使用,Windows和Linux都支持

2.下載:①pip下載:打開命令提示符,輸入下載命令:

pip install pywifi

由於此模塊基於comtypes模塊,因此同時需要下載此模塊:

pip install comtypes

對於PyCharm,則直接下載兩個模塊即可

 

三、pywifi基礎  

#  引入pywifi庫及所帶常量庫
import pywifi
from pywifi import const, Profile

#  1. 基礎

#  獲取網卡接口
wifi = pywifi.PyWiFi()

#  得到第一個無線網卡
ifaces = wifi.interfaces()[0]

#  切斷網卡連接
ifaces.disconnect()

#  獲取wifi的連接狀態
wifistatus = ifaces.status()

#  檢查wifi是否處於切斷狀態
if wifistatus == const.IFACE_DISCONNECTED:

    #  網卡已被切斷

    pass

#  如果網卡沒有被切斷
#  或者使用 " if wifistatus == const.IFACE_CONNECTED: "

else:

    #  已連接wifi

    pass

#  如果已經切斷網卡,一般執行下述操作
if wifistatus == const.IFACE_DISCONNECTED:

    #  設置wifi連接文件
    profile: Profile = pywifi.Profile()

    #  你要連接的網絡的名稱
    profile.ssid = "    "

    #  網卡的開放狀態
    #  " Auth - AP "的驗證算法
    profile.auth = const.AUTH_ALG_OPEN

    #  wifi的加密算法
    #  通常的加密算法值為 " WPA "
    #  選擇wifi的加密方式
    #  " Akm - AP "的密鑰管理
    profile.akm.append(const.AKM_TYPE_WPA2PSK)

    #  加密單元
    #  " Cipher - AP "的密碼類型
    profile.cipher = const.CIPHER_TYPE_CCMP

    #  設置密碼
    password = "   "

    #  回調密碼(wifi密碼)
    #  如果沒有密碼,則設置值為 " CIPHER_TYPE_NONE "
    profile.key = password

    #  刪除已連接的所有wifi文件
    ifaces.remove_all_network_profiles()

    #  加載新的wifi連接文件
    tep_profile = ifaces.add_network_profile(profile)

    #  連接上面的wifi文件
    ifaces.connect(tep_profile)

    #  如果wifi已連接
    if ifaces.status() == const.IFACE_CONNECTED:

        print(True)

    #  如果仍未連接
    else:

        print(False)


 

四、pywifi詳細講解  

#  2.提高

#  獲取wifi接口名稱
name = ifaces.name()

#  掃描wifi ( AP )
ifaces.scan()

#  查看上面的wifi掃描結果 ( 返回值為列表 )
result = ifaces.scan_results()

#  刪除所有的AP配置文件
#  目的是為了接下來的連接
ifaces.remove_all_network_profiles()

#  返回配置文件的列表
files = ifaces.network_profiles()

#  設置配置文件的名字
ifaces.add_network_profile(profile)

#  連接wifi
ifaces.connect(profile)

#  斷開wifi
ifaces.disconnect()

#  wifi的連接狀態
ifaces.status()

#  配置文件
profile = pywifi.Profile()

#  配置文件的方法
#  ssid  auth  akm  cipher  key
#  這些的詳細講解可看基礎


#  pywifi中const的量

#  const.IFACE_DISCONNECTED = 0
#  const.IFACE_SCANNING = 1
#  const.IFACE_INACTIVE = 2
#  const.IFACE_CONNECTING = 3
#  const.IFACE_CONNECTED = 4

#  Auth - AP
var1 = const.AUTH_ALG_OPEN
var2 = const.AUTH_ALG_SHARED

#  Akm - AP
#  不安全的方法
var3 = const.AKM_TYPE_NONE
#  WPA的方法
var4 = const.AKM_TYPE_WPAPSK
#  WPA2的方法
var5 = const.AKM_TYPE_WPA2PSK
#  對於企業的方法
var6 = const.AKM_TYPE_WPA
var7 = const.AKM_TYPE_WPA2

#  Cipher - AP
var8 = const.CIPHER_TYPE_NONE  
var9 = const.CIPHER_TYPE_WEP
var10 = const.CIPHER_TYPE_TKIP
var11 = const.CIPHER_TYPE_CCMP

 

五、后言  

本教程原本是我寄存在的一個python程序,所以所有的講解都是在代碼中的,若有不便,敬請諒解

原本我所書寫的文件為英文版,教程可見下,若有疑問,可加Q:2633748531進行詢問

 

六、原本教程(英文版)  

#  Import the module of PyWifi
import pywifi
from pywifi import const, Profile

#  1. Basic

#  Get the network card interface
wifi = pywifi.PyWiFi()

#  Get the first wireless network card
ifaces = wifi.interfaces()[0]

#  Disconnect the network card
ifaces.disconnect()

#  Get the connection state of wifi
wifistatus = ifaces.status()

#  Check if disconnect the wifi
if wifistatus == const.IFACE_DISCONNECTED:

    #  The network card disconnect

    pass

#  If the network card has already connected
#  Or use the " if wifistatus == const.IFACE_CONNECTED: "

else:

    #  Have already connected the wifi

    pass

#  If you have already disconnect the network card, do the below
if wifistatus == const.IFACE_DISCONNECTED:

    #  Set up the file of wifi connection
    profile: Profile = pywifi.Profile()

    #  The name of wifi which you want to connect
    profile.ssid = "TP-LINKwangqing"

    #  The opening state of the network card
    #  The authentication algorithm of " Auth - AP"
    profile.auth = const.AUTH_ALG_OPEN

    #  The encryption algorithm of wifi
    #  The encryption algorithm of common wifi is " WPA "
    #  Choose the encryption way of wifi
    #  The key management type of " Akm - AP "
    profile.akm.append(const.AKM_TYPE_WPA2PSK)

    #  Encryption unit
    #  The password type of " Cipher - AP "
    profile.cipher = const.CIPHER_TYPE_CCMP

    #  Set the password
    password = "wangzijia123456"

    #  Call the password ( the password of wifi)
    #  If there's no password, set the value " CIPHER_TYPE_NONE "
    profile.key = password

    #  Delete all the file of wifi which has already connected
    ifaces.remove_all_network_profiles()

    #  Loading the new file of connection
    tep_profile = ifaces.add_network_profile(profile)

    #  Connect the new file that above
    ifaces.connect(tep_profile)

    #  If the wifi has already connected
    if ifaces.status() == const.IFACE_CONNECTED:

        print(True)

    #  If it has disconnected yet
    else:

        print(False)



#  2.Improvement

#  Get the name of wifi interface
name = ifaces.name()

#  Scan the wifi ( AP )
ifaces.scan()

#  Look the result of scanning ( list )
result = ifaces.scan_results()

#  Delete all the setting files of AP
#  In order to the next connect
ifaces.remove_all_network_profiles()

#  Return the list of setting files
files = ifaces.network_profiles()

#  Set the name of setting file
ifaces.add_network_profile(profile)

#  Connect the wifi
ifaces.connect(profile)

#  Disconnect the wifi
ifaces.disconnect()

#  The connection state of wifi
ifaces.status()

#  Const in pywifi

#  const.IFACE_DISCONNECTED = 0
#  const.IFACE_SCANNING = 1
#  const.IFACE_INACTIVE = 2
#  const.IFACE_CONNECTING = 3
#  const.IFACE_CONNECTED = 4

#  Set up the file
profile = pywifi.Profile()

#  The way to set up the file
#  ssid  auth  akm  cipher  key
#  These look above

#  Auth - AP
var1 = const.AUTH_ALG_OPEN
var2 = const.AUTH_ALG_SHARED

#  Akm - AP
#  No safe mode
var3 = const.AKM_TYPE_NONE
#  The mode of WPA
var4 = const.AKM_TYPE_WPAPSK
#  The mode of WPA2
var5 = const.AKM_TYPE_WPA2PSK
#  For business
var6 = const.AKM_TYPE_WPA
var7 = const.AKM_TYPE_WPA2

#  Cipher - AP
var8 = const.CIPHER_TYPE_NONE  
var9 = const.CIPHER_TYPE_WEP
var10 = const.CIPHER_TYPE_TKIP
var11 = const.CIPHER_TYPE_CCMP


 


免責聲明!

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



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