Python之——獲取電腦連線過的所有wifi名稱和密碼
阿新 • • 發佈:2018-12-16
不多說,上程式碼:
# -*- coding: UTF-8 -*- import os import sys reload(sys) sys.setdefaultencoding('utf-8') # 定義一個函式checkWIFI,獲取電腦連線過的所有wifi名稱和密碼,結果以列表形式返回 def checkWIFI(): # 定義一個空列表,用來存放查詢結果 list = [] # 查詢所有的wifi名稱 message = os.popen('netsh wlan show profiles').readlines() # print(message) # 獲取的結果是一個列表list,需要進行遍歷 for i in message: # 遍歷結果含有中文會亂碼,需要進行gbk編碼 result = i.strip().decode("gbk") # print(result) # print(result+"的長度為"+str(len(result))+",資料型別為"+str(type(result))) # 檢查每一個結果中是否含有指定關鍵字 if result.find(u"所有使用者配置檔案 : ") != -1: # print("位置:"+str(result.find(u": "))) # 從位置11開始擷取 # print("wifi名稱:"+result[11:]) # netsh wlan show profiles name="Xiaomi_216E" key=clear # 如果找到關鍵字,就擷取指定位置的字串,即wifi名稱,再拼接成cmd命令 command = 'netsh wlan show profiles name="' + result[11:] + '" key=clear' # print(command) # 執行拼接好的命令,獲取含有密碼的結果 per_wifi = os.popen(command).readlines() # 獲取的結果是一個列表list,需要進行遍歷 for j in per_wifi: # 遍歷結果含有中文會亂碼,需要進行gbk編碼 passwd = j.strip().decode("gbk") # print(passwd) # 檢查每一個結果中是否含有指定關鍵字 if passwd.find(u"關鍵內容 :") != -1: # 獲取字串指定位置的內容並判斷是否為空 if passwd[18:] != '': # 定義一個臨時列表list_temp存放每一個wifi資訊,即wifi名稱和密碼 list_temp = [] # 將wifi名稱追加到列表list_temp list_temp.append(result[11:]) # 將密碼追加到列表list_temp list_temp.append(passwd[18:]) # 將每個wifi資訊作為一個整體追加到列表list list.append(list_temp) # print("wifi名稱:" + result[11:]) # print("wifi密碼:"+passwd[18:]) # print("") # 將所有的wifi資訊列表list返回給呼叫者 return list print("正在查詢......") # 定義一個變數,存放呼叫checkWIFI的執行結果 list = checkWIFI() print("返回結果如下:") i = 0 # 將查詢結果遍歷輸出 for n in list: i = i + 1 print(str(i) + "、wifi名稱:" + n[0] + ",密碼:" + n[1])