• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何利用python和DOS获取wifi密码

    CMD命令获取电脑里配置过的wifi信息

    设定一个场景,假如我忘记了自家的wifi密码,这时候小伙伴来家里跟我开黑,问我wifi密码是多少?我就抓住了这个小秀一波的机会。

    上才艺:

    按下win+R键,输入CMD打开DOS窗口,然后输入以下命令查看电脑里配置过的wifi。

    netsh wlan show profiles
    

    这是电脑连过的wifi,假设我家里的wifi是CMCC-CMCC,接下来我需要查看CMCC-CMCC的信息,上代码:

    netsh wlan show profiles CMCC-CMCC
    

    可以看到,安全密钥这里显示的是存在,说明这个wifi是有密码的,接下来,我们用在上面的代码基础上加上"key=clear",密码就会显示了。(不用担心这个clear,不会删除你的wifi密码的,只是一个显示作用)

    netsh wlan show profiles CMCC-CMCC key=clear
    

    这个就是我的wifi密码了!

    用python脚本来实现这一操作,并获取所有配置过的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.append(wifi_profile)
    

    最后,只要把列表(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]
          wifi_list.append(wifi_profile)
    for x in range(len(wifi_list)):
      print(wifi_list[x])
    

    如果大家有什么高见请批评指正

    以上就是如何利用python和DOS获取wifi密码的详细内容,更多关于用python和DOS获取wifi密码的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • 使用PyQt5设计GUI实现程序图形界面设计
    • 如何用Python破解wifi密码过程详解
    • Python爬取破解无线网络wifi密码过程解析
    • Python脚本暴力破解栅栏密码
    • python攻防-破解附近局域网WIFI密码实现上网自由
    上一篇:python实现web邮箱扫描的示例(附源码)
    下一篇:python模块中判断全局变量的赋值的实例讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    如何利用python和DOS获取wifi密码 如何,利用,python,和,DOS,获取,