python鏈接wifi須要使用pywifi包,能夠用pip install pywifi安裝python
1.導入包app
import pywifi,time #保存包中寫義的常量
from pywifi import const
conbst 定義的常量:加密
# # Define interface status. # IFACE_DISCONNECTED = 0 # IFACE_SCANNING = 1 # IFACE_INACTIVE = 2 # IFACE_CONNECTING = 3 # IFACE_CONNECTED = 4 # # # Define auth algorithms. # AUTH_ALG_OPEN = 0 # AUTH_ALG_SHARED = 1 # # # Define auth key mgmt types. # AKM_TYPE_NONE = 0 # AKM_TYPE_WPA = 1 # AKM_TYPE_WPAPSK = 2 # AKM_TYPE_WPA2 = 3 # AKM_TYPE_WPA2PSK = 4 # AKM_TYPE_UNKNOWN = 5 # # # Define ciphers. # CIPHER_TYPE_NONE = 0 # CIPHER_TYPE_WEP = 1 # CIPHER_TYPE_TKIP = 2 # CIPHER_TYPE_CCMP = 3 # CIPHER_TYPE_UNKNOWN = 4 # # KEY_TYPE_NETWORKKEY = 0 # KEY_TYPE_PASSPHRASE = 1
def wifi_connect_status(): """ 判斷本機是否有無線網卡,以及鏈接狀態 :return: 已鏈接或存在無線網卡返回1,不然返回0 """
#建立一個元線對象
wifi = pywifi.PyWiFi() #取當前機器,第一個元線網卡
iface = wifi.interfaces()[0] #有可能有多個無線網卡,因此要指定
#判斷是否鏈接成功
if iface.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]: print('wifi已鏈接') return 1
else: print('wifi未鏈接') return 0
掃苗wifispa
def scan_wifi(): """ 掃苗附件wifi :return: 掃苗結果對象 """
#掃苗附件wifi
wifi = pywifi.PyWiFi() iface = wifi.interfaces()[0] iface.scan() #掃苗附件wifi
time.sleep(1) basewifi = iface.scan_results() for i in basewifi: print('wifi掃苗結果:{}'.format(i.ssid)) # ssid 爲wifi名稱
print('wifi設備MAC地址:{}'.format(i.bssid)) return basewifi
連接到指定wificode
def connect_wifi(): wifi = pywifi.PyWiFi() # 建立一個wifi對象
ifaces = wifi.interfaces()[0] # 取第一個無限網卡
print(ifaces.name()) # 輸出無線網卡名稱
ifaces.disconnect() # 斷開網卡鏈接
time.sleep(3) # 緩衝3秒
profile = pywifi.Profile() # 配置文件
profile.ssid = "acewill" # wifi名稱
profile.auth = const.AUTH_ALG_OPEN # 須要密碼
profile.akm.append(const.AKM_TYPE_WPA2PSK) # 加密類型
profile.cipher = const.CIPHER_TYPE_CCMP # 加密單元
profile.key = '4000103000' #wifi密碼 ifaces.remove_all_network_profiles() # 刪除其餘配置文件
tmp_profile = ifaces.add_network_profile(profile) # 加載配置文件
ifaces.connect(tmp_profile) # 鏈接
time.sleep(10) # 嘗試10秒可否成功鏈接
isok = True if ifaces.status() == const.IFACE_CONNECTED: print("成功鏈接") else: print("失敗") #ifaces.disconnect() # 斷開鏈接
time.sleep(1) return isok
以上是操做wifi經常使用的方法, 能夠本身擴展.好比弱口令破解. 能夠下載個6000經常使用wifi弱口令. orm
思想簡單,挨個試鏈接,狀態const.IFACE_CONNECTED 即密碼正確. 對象