python获取电脑所连接的wifi密码

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

CMD命令

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

shell 复制代码
netsh wlan show profiles

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

shell 复制代码
netsh wlan show profile name="XXXXXXXXX" key=clear

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

python脚本

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

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

使用方法如下:

shell 复制代码
subprocess.check_output(args, *, stdin=None, stderr=None, 
                        shell=False, universal_newlines=False)

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

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

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

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

执行结果如下:

代码如下:

python 复制代码
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信息,但是在其他命令执行方面,或许能有更多应用场景,甚至开发出相关的简易工具,有待朋友们进一步探索。

相关推荐
好家伙VCC2 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
前端玖耀里3 小时前
如何使用python的boto库和SES发送电子邮件?
python
serve the people3 小时前
python环境搭建 (十二) pydantic和pydantic-settings类型验证与解析
java·网络·python
小天源3 小时前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
喵手3 小时前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手3 小时前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
2601_949146534 小时前
Python语音通知接口接入教程:开发者快速集成AI语音API的脚本实现
人工智能·python·语音识别
寻梦csdn4 小时前
pycharm+miniconda兼容问题
ide·python·pycharm·conda
十五年专注C++开发4 小时前
MinHook:Windows 平台下轻量级、高性能的钩子库
c++·windows·钩子技术·minhook
Java面试题总结5 小时前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf