日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用Python脚本能获取Wifi密码么?能。

發布時間:2023/12/20 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Python脚本能获取Wifi密码么?能。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注意,本文不是破解 WIFI 密碼,當然你把程序發給別人再獲取對方密碼,那是社會工程學。

文章目錄

    • ?? 實戰場景與 `subprocess` 模塊介紹
    • ?? Python 獲取本地 Wifi 密碼

?? 實戰場景與 subprocess 模塊介紹

這篇博客給大家帶來一個小小的案例,使用 Python 腳本獲取本地電腦記錄的所有 Wifi 密碼。

先介紹一下用到的模塊 subprocess,看模塊名就知道這是進程模塊,它可以讓我們生成新的進程,并對進行進行管理。

模塊中的常用函數,如下所示。

  • subprocess.run():執行指定命令,等待執行完成后返回一個包含執行結果的 CompletedProcess 類對象;
  • subprocess.call():執行指定命令,返回命令執行狀態,與 os.system(cmd) 功能類似;
  • subprocess.check_call():執行指定命令,如果執行成功返回狀態碼,否則拋出異常;
  • subprocess.check_output() :執行指定命令,如果執行狀態碼為 0,返回執行結果,否則拋出異常;
  • subprocess.getoutput():接收字符串格式的命令,執行并返回執行結果,與之相同的函數有 os.popen(cmd).read();
  • subprocess.getstatusoutput():執行命令,返回一個元組(命令執行狀態,命令執行結果)。

使用這個模塊還有一些注意事項。

  • 官方建議最新版本的 Python,優先使用 subprocess.run();
  • 上述所有函數都是通過封裝 subprocess.Popen() 實現的高級函數,所以想實現復雜功能,可以通過它來實現;
  • subprocess.getoutput() 和 subprocess.getstatusoutput() 安全性較低。
  • 既然優先使用 subprocess.run() 方法,那我們看一下其語法格式。

    subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)

    參數說明如下:

    • args:要執行的 shell 命令,需要傳入字符串或者字符串參數列表;
    • stdin,stdout,stderr:子進程的標準輸入,輸出和錯誤;
    • timeout:命令超時時間;
    • check:默認為 False,如果設置為 True,則當進程退出狀態碼不是 0 的時候,拋出 CalledProcessError 異常;
    • encoding:如果設置該參數,則 stdin,stdout,stderr 可以接收字符串數據,并以該編碼進行編碼,否則只接收字節類型數據;
    • shell:設置命令是否通過 Shell 執行。

    有些這些基礎參數說明之后,就可以調用最簡單的 Shell 命令了,例如查看本地 pip 包安裝清單。

    import subprocesssubprocess.run(["pip","list"])

    運行代碼,自行查看結果,當然也可以把返回值捕獲到一個變量中,查看一下返回對象類型。

    import subprocessret = subprocess.run(["pip","list"]) print(ret)

    輸出結果如下所示:

    CompletedProcess(args=['pip', 'list'], returncode=0)

    此時返回的是 CompletedProcess 類的對象實例,它表示的是結束進程之后的狀態心虛,包含如下屬性。

    • args:該進程執行的命令;
    • returncode:退出狀態碼,為 0 表示進程成功運行,負值-N 表示進程被信號 N 終止;
    • stdout:從進程捕獲到的輸出信息;
    • stderr:從進程捕獲到的錯誤信息。

    🍁 有了上述知識鋪墊之后,就可以完成 Python 獲取本地 Wifi 密碼案例了 🍁

    ?? Python 獲取本地 Wifi 密碼

    獲取本地 wifi 密碼,先通過 CMD 命令實現,分為兩步,如下所示。
    第一步,獲取所有用戶配置文件,其結果為當前電腦連接過的 wifi 名稱。

    netsh wlan show profiles

    得到的結果如下所示。

    這里僅在本機中找到了一個配置文件 realme GT Neo2T,然后通過下述命令查看 Wifi 密碼。
    第二步,獲取上述配置文件對應的密碼。

    netsh wlan show profile name="realme GT Neo2T" key=clear

    可以在運行結果中找到保存密碼,如下所示。

    有了上述兩條 CMD 命令,我們將其應用到 Python 中,就實現了本案例訴求。

    將 CMD 命令翻譯為 Python 代碼,首先獲取所有 wifi 信息。

    import subprocess# 獲取本機wifi列表 output = subprocess.run(['netsh', 'wlan', 'show', 'profiles'], capture_output=True).stdout.decode('gbk').split('\n') print(output) wifi_list = [item.split(':')[1][1:-1] for item in output if "所有用戶配置文件" in item]print(wifi_list)

    接下來執行第二條命令,獲取指定 wifi 密碼。

    # 獲取 wifi 密碼 for wifi in wifi_list:ret = subprocess.run(['netsh', 'wlan', 'show', 'profile', f'name={wifi}', 'key=clear'],capture_output=True).stdout.decode('gbk', errors='ignore').split('\n')print(ret)results = [item.split(':')[1][1:-1] for item in ret if "關鍵內容" in item]print(f'{wifi} 密碼:{results[0] if len(results)>0 else "無" }')

    最終的運行結果如下所示。

    realme GT Neo2T 密碼:12345678

    💰💰 完成本案例!

    📢📢📢📢📢📢
    💗 你正在閱讀 【夢想橡皮擦】 的博客
    👍 閱讀完畢,可以點點小手贊一下
    🌻 發現錯誤,直接評論區中指正吧
    📆 橡皮擦的第 752 篇原創博客

    從訂購之日起,案例 5 年內保證更新

    • ?? Python 爬蟲 120,點擊訂購 ??
    • ?? 爬蟲 100 例教程,點擊訂購 ??

    總結

    以上是生活随笔為你收集整理的用Python脚本能获取Wifi密码么?能。的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。