python获取电脑所连接的wifi密码-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

电脑连接wifi后很难直观地看到当前连接wifi的密码需要借助命令行公管局才可以查看到相关信息。

CMD命令

查看所有已保存的wifi配置信息

netsh wlan show profiles

查看某一个wifi的详细信息需要输入wifi名称来查询

netsh wlan show profile name="XXXXXXXXX" key=clear

打开CMD命令行执行上述命令即可看到相关信息。

python脚本

CMD命令可以通过python来进行调用需要一个模块即subprocess

subprocess.check_output函数是Python标准库subprocess模块中的一个函数用于执行系统命令并返回命令的输出结果。

使用方法如下

subprocess.check_output(args, *, stdin=None, stderr=None, 
                        shell=False, universal_newlines=False)

返回结果是字符串也就是执行命令返回的信息。

python对命令执行结果进行处理主要思路如下

1、执行第一个命令netsh wlan show profiles获取到本地保存过的所有的wifi名称存入一个list

2、遍历list去执行第二个命令得到某一个wifi的详细信息然后提取出来密码所在的行信息保存处理即可。

执行结果如下
在这里插入图片描述

代码如下

import subprocess

# 执行netsh命令获取Wi-Fi密码
result = subprocess.check_output('netsh wlan show profiles', shell=True)
# print(result)
profiles = []
for line in result.split('\n'):
    if "所有用户配置文件 :" in line:
        profiles.append(line.split(':')[1].strip())
for profile in profiles:
    try:
        password_result = subprocess.check_output(f'netsh wlan show profile name="{profile}" key=clear',
                                                  shell=True)
        # print(password_result)
        for line in password_result.split('\n'):
            if "关键内容" in line:
                print('{:<40}{:>30}'.format('WIFI名称'+profile,'WIFI密码'+line.split(':')[1].strip()))

    except:
        print(f'无法获取{profile}的密码')

总结

主要用到了如下知识点

  • 命令获取wifi信息
  • python调用CMD命令
  • python print()输出格式化左右对齐print('{:<40}{:>30}'.format('aaaaaaaaaaaaa','bbbbbbbbbbb'))
  • split()分片函数用于分割字符串
  • strip()哟关于去除头尾特定字符默认去除头尾空格

虽然本次实验仅获取了wifi信息但是在其他命令执行方面或许能有更多应用场景甚至开发出相关的简易工具有待朋友们进一步探索。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python