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


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

    CMD命令

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

    netsh wlan show profiles
    
    • 1

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

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

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

    python脚本

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

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

    使用方法如下:

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

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

    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}的密码')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    总结

    主要用到了如下知识点:

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

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

  • 相关阅读:
    面试题1(京东)之HiveSql --- 难度:入门初级
    Node学习笔记之模块化
    vsto excel 表格存在循环引用 删除名称管理器很慢
    生产部长修炼宝典④|可视化数据分析让会议有效率有质量—会议在线管理跟踪
    003编程语言中的类型
    脚本文件中指定主题、保存路径执行rosbag record脚本文件编写方法
    C++11之constexpr
    互联网摸鱼日报(2023-09-18)
    【英语:基础进阶_核心词汇扩充】E5.常见词根拓词
    Java项目:SSM医院挂号预约管理系统
  • 原文地址:https://blog.csdn.net/qq_34045989/article/details/134232749