使用Python提取本機連接過WiFi名稱和密碼
更新時間:2026年02月05日 09:34:48 作者:flysh05
本文介紹如何在Windows系統(tǒng)上用Python獲取歷史連接過的WiFi名稱及密碼并導出為CSV文件,通過調用netsh wlan show profiles獲取WiFi列表,再使用netsh wlan show profile命令解析各WiFi密碼,需要的朋友可以參考下
在 Windows 系統(tǒng)上用Python 獲取當前電腦之前接過的 WiFi 名稱及密碼,并導出csv文件。
實現(xiàn)原理
Windows 會把所有連接過的 WiFi 配置保存在系統(tǒng)中,使用命令:
netsh wlan show profiles→ 獲取所有 WiFi 名稱netsh wlan show profile name="xxx" key=clear→ 獲取指定 WiFi 的密碼
Python 只需要調用這些命令并解析即可。
Python 代碼如下
# -*- coding: utf-8 -*-
import subprocess
import re
import csv
import sys
def run_cmd(cmd):
"""執(zhí)行系統(tǒng)命令并返回輸出(永不返回 None)"""
try:
result = subprocess.run(
cmd,
shell=True,
capture_output=True,
text=True,
encoding="gbk",
errors="ignore"
)
return result.stdout or ""
except Exception as e:
return ""
def get_wifi_list():
"""獲取所有 WiFi 配置名稱(兼容中英文系統(tǒng))"""
output = run_cmd("netsh wlan show profiles")
# 兼容中文:所有用戶配置文件
# 兼容英文:All User Profile
profiles = re.findall(
r"(?:所有用戶配置文件|All User Profile)\s*:\s*(.*)",
output
)
return [p.strip() for p in profiles]
def get_wifi_password(name):
"""獲取指定 WiFi 的密碼(兼容中英文系統(tǒng))"""
if not name:
return ""
output = run_cmd(f'netsh wlan show profile name="{name}" key=clear')
# 兼容中文:關鍵內容
# 兼容英文:Key Content
match = re.search(
r"(?:關鍵內容|Key Content)\s*:\s*(.*)",
output
)
return match.group(1).strip() if match else ""
def export_wifi_passwords(csv_file="wifi_passwords.csv"):
"""導出所有 WiFi 名稱與密碼到 CSV,并打印到 stdout(供 C# 調用)"""
wifi_list = get_wifi_list()
data = []
for wifi in wifi_list:
pwd = get_wifi_password(wifi)
data.append([wifi, pwd])
print(f"{wifi} : {pwd}")
# 寫入 CSV 文件
try:
with open(csv_file, "w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerow(["WiFi 名稱", "密碼"])
# writer.writerows(data)
for wifi, pwd in data:
writer.writerow([wifi, "\t" + pwd]) # 把它當成純文本,不會吞掉前導 0
# writer.writerow([wifi, f"'{pwd}"])
except Exception as e:
print(f"寫入 CSV 文件失敗: {e}")
sys.stdout.flush() # 關鍵:確保 C# 能讀取完整輸出
if __name__ == "__main__":
export_wifi_passwords()
運行效果
終端輸出:
WXzhongshuge : 20130423 Ritchie : ritchie12345678 KFC FREE WIFI : ChinaNet-Starbucks : RD_Meeting_Room : 57744789 1205 : W136444564 高鐵WiFi : CMCC-JJJ2 : 12345678 H3C_E4C764 : 6575754635 已導出到文件:wifi_passwords.csv
注意事項
- 代碼僅適用于 Windows
- 需要以 管理員權限運行 Python(否則可能讀取不到密碼)
- 輸出編碼使用
gbk以兼容中文系統(tǒng) - run_cmd 增加安全保護,設置參數(shù)errors=“ignore”
- 避免導出csv 文件將密碼前面0省略,使用writer.writerow([wifi, “\t” + pwd]) 或writer.writerow([wifi, f’=“{pwd}”'])
以上就是使用Python提取本機連接過WiFi名稱和密碼的詳細內容,更多關于Python提取連接過WiFi名稱密碼的資料請關注腳本之家其它相關文章!
相關文章
Python中使用Queue和Condition進行線程同步的方法
這篇文章主要介紹了Python中使用Queue模塊和Condition對象進行線程同步的方法,配合threading模塊下的線程編程進行操作的實例,需要的朋友可以參考下2016-01-01
Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別
本文主要介紹了Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04
淺談Tensorflow 動態(tài)雙向RNN的輸出問題
今天小編就為大家分享一篇淺談Tensorflow 動態(tài)雙向RNN的輸出問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python的pytest框架之命令行參數(shù)詳解(上)
這篇文章主要介紹了python的pytest框架之命令行參數(shù)詳解,pytest是一款強大的python自動化測試工具,可以勝任各種類型或者級別的軟件測試工作。pytest提供了豐富的功能,包括assert重寫,第三方插件,需要的朋友可以參考下2019-06-06
python可迭代類型遍歷過程中數(shù)據(jù)改變會不會報錯
這篇文章主要介紹了python可迭代類型遍歷過程中數(shù)據(jù)改變會不會報錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12

