設定乙個場景,假如我忘記了自家的wifi密碼,這時候小夥伴來家裡跟我開黑,問我wifi密碼是多少?我就抓住了這個小秀一波的機會。
上才藝:
按下win+r鍵,輸入cmd開啟dos視窗,然後輸入以下命令檢視電腦裡配置過的wifi。
這是電腦連過的wifi,假設我家裡的wifi是cmcc-cmcc,接下來我需要檢視cmcc-cmcc的資訊,上**:
可以看到,安全金鑰這裡顯示的是存在,說明這個wifi是有密碼的,接下來,我們用在上面的**基礎上加上"key=clear",密碼就會顯示了。(不用擔心這個clear,不會刪除你的wifi密碼的,只是乙個顯示作用)
這個就是我的wifi密碼了!
首先匯入兩個庫subprocess、re
我們建立乙個通道來執行dos命令,列出所有的連線過的wifi,並且用profile_names來存下這些wifi名稱,輸出採用字典的形式,每個wifi名和密碼為乙個字典中的鍵值對,並且先定義乙個列表用來存下這些字典。
command_output = subprocess.run(
['netsh'
,'wlan'
,'show'
,'profiles'
],capture_output=
true
).stdout.decode(encoding=
'gbk'
)profile_names = re.findall(
'所有使用者配置檔案 :(.*)\r'
,command_output)
#返回乙個列表
wifi_list=
list
()
將下乙個命令即「檢視wifi是否存在金鑰」寫進**
if
len(profile_names)!=0
:for name in profile_names:
wifi_profile =
dict()
profile_info = subprocess.run(
['netsh'
,'wlan'
,'show'
,'profiles'
,name]
,capture_output=
true
).stdout.decode(encoding=
'gbk'
)
如果安全金鑰的內容不是存在的話,說明wifi是沒有密碼的,我們就不用去瞎搞了,直接continue了。如果是存在的話,我們才進行下一步操作,就是進行下乙個命令:加上key=clear,檢視密碼。這裡解釋一下為什麼要用name[1:],可能是因為編碼的原因,通過正則得來的name前面包含了乙個空格,如果直接用這個name的話,電腦會告訴你沒有這個wifi。例如上文中,我的wifi是「cmcc-cmcc」,當是通過正則獲取的wifi名就是「 cmcc-cmcc」多了乙個空格。電腦會以為這兩個東西它不一樣。。。
if re.search(
'安全金鑰 : 不存在'
,profile_info)
:continue
else
: wifi_profile[
'ssid'
]= name[1:
] profile_info_pass = subprocess.run(
['netsh'
,'wlan'
,'show'
,'profiles'
,name[1:
],'key=clear'
],capture_output=
true
).stdout.decode(encoding=
'gbk'
) password = re.search(
'關鍵內容 :(.*)\r'
,profile_info_pass)
if password ==
none
: wifi_profile[
"password"]=
none
else
: wifi_profile[
"password"
]= password[
1]
最後,只要把列表(wifi_list)中的內容列印出來就行了,我把所有**跟在後面,方便大家理解。
import subprocess
import re
command_output = subprocess.run(
['netsh'
,'wlan'
,'show'
,'profiles'
],capture_output=
true
).stdout.decode(encoding=
'gbk'
)profile_names = re.findall(
'所有使用者配置檔案 :(.*)\r'
,command_output)
wifi_list=
list()
print
(type
(profile_names))if
len(profile_names)!=0
:for name in profile_names:
wifi_profile =
dict()
profile_info = subprocess.run(
['netsh'
,'wlan'
,'show'
,'profiles'
,name]
,capture_output=
true
).stdout.decode(encoding=
'gbk'
)if re.search(
'安全金鑰 : 不存在'
,profile_info)
:continue
else
: wifi_profile[
'ssid'
]= name[1:
] profile_info_pass = subprocess.run(
['netsh'
,'wlan'
,'show'
,'profiles'
,name[1:
],'key=clear'
],capture_output=
true
).stdout.decode(encoding=
'gbk'
) password = re.search(
'關鍵內容 :(.*)\r'
,profile_info_pass)
if password ==
none
: wifi_profile[
"password"]=
none
else
: wifi_profile[
"password"
]= password[1]
for x in
range
(len
(wifi_list)):
print
(wifi_list[x]
)
如果大家有什麼高見請批評指 如何利用python和DOS獲取wifi密碼
設定乙個場景,假如我忘記了自家的wifi密碼,這時候小夥伴來家裡跟我開黑,問我wifi密碼是多少?我就抓住了這個小秀一波的機會。上才藝 按下win r鍵,輸入cmd開啟dos視窗,然後輸入以下命令檢視電腦裡配置過的wifi。netsh wlan show profiles 這是電腦連過的wifi,假...
Dos下獲取日期和時間
date 和 time 2007 08 08 23 13 c echo date 2007 08 08 星期三 c echo date 0,4 2007 碟符 輸出 date 是乙個引數 但是他後面帶的這些就是取值範圍,說說後面的數值 第乙個0代表從頭開始 後面的4代表共取4個字元 c echo d...
學習筆記 利用DOS命令和E
學習筆記 利用dos命令和excel配合批量更改檔名 閑庭信步 用ps的資料驅 形得到的psd檔案名字雖然規律,但是不是想要的結果。現在希望能用資料組中的某個欄位來命名,ps是做不到了,但是我們可以用dos excel配合批量更改檔案的名字。主要用到兩個dos命令 rename命令 tree命令 e...