banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban

Python3 打印出電腦上所有wifi帳號和密碼

原理#

cmd 查詢本地 wifi 配置#

在 cmd 執行命令netsh wlan show profiles

image

能顯示出此電腦上所有的 Wlan 配置檔案,我們要查看其中一個的密碼,指定 name=wlan 名 (也就是 SSID) key=clear 即可,
netsh wlan show profiles name=連了是SB key=clear

image

Python 的 os.popen () 函數用 cmd 執行傳入參數#

Python 中有一個 os 檔案 / 目錄庫,其中有一個函數叫做 os,其中一條指令為 os.popen,能夠用於從一個命令打開一個管道

os.popen 介紹:python os.popen 方法 | 菜鳥教程

也就是這條命令能夠用 cmd 執行傳入的字串,比如os.popen('dir').read()
image

這就是用到的所有基本知識

代碼講解#

  • 首先肯定要導入庫import os

  • 然後我們用 os.popen () 函數先查詢總的 wifi 配置:

cmd_get_allpfs = ('netsh wlan show profiles')
with os.popen(cmd_get_allpfs) as f:
    SSID_list = []
    for line in f:
        if'所有用戶配置檔案 :' in line:
            line = line.strip().split(":")[1]
            SSID_list.append(line)
  • 如果返回的內容行中含有 ' 所有用戶配置檔案 :' 這個字樣,就把這一行用:分割,將後面的部分,也就是 wifi 名,存儲到 wifi 名列表 SSID_list 中,然後我們再挨條執行密碼查詢語句並打印出來:
for SSID in SSID_list:
    cmd_get_evepf = ('netsh wlan show profiles name={} key=clear'.format(SSID))
    with os.popen(cmd_get_evepf) as r:
        evepf = r.read()
        print(evepf)
  • 將列表中的 SSID 挨條格式化傳入查詢語句,然後打印出查詢內容,效果如下:
    image

當然,如果你只想簡單地獲取 SSID 和密碼,比如

SSID_name1:passwod1
SSID_name2:passwod2

這樣的,簡單改一下就好了,以下為獲取SSID:password的全部代碼:

#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
@author: soapffz
@fucntion: 打印出電腦上所有的wifi帳號:密碼
@time:2018-12-15
'''

import os

cmd_get_allpfs = ('netsh wlan show profiles')
with os.popen(cmd_get_allpfs) as f:
    SSID_list = []
    for line in f:
        if'所有用戶配置檔案 :' in line:
            line = line.strip().split(":")[1]
            SSID_list.append(line)

PASS_list = []

for SSID in SSID_list:
    cmd_get_evepf = ('netsh wlan show profiles name={} key=clear'.format(SSID))
    with os.popen(cmd_get_evepf) as r:
        for line in r:
            if'關鍵內容'in line:
                line = line.strip().split(":")[1]
                PASS_list.append(line)

for i in range(len(SSID_list)):
    print("{}:{}".format(SSID_list[i], PASS_list[i]))
  • 效果如下:

image

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。