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

 更新时间:2021年03月30日 15:41:11   作者:Giopi  
这篇文章主要介绍了如何利用python和DOS获取wifi密码,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下

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

  • subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。
  • re 模块使 Python 语言拥有全部的正则表达式功能。

我们建立一个通道来执行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密码的资料请关注脚本之家其它相关文章!

相关文章

  • 使用Python随机生成数据的方法

    使用Python随机生成数据的方法

    这篇文章主要介绍了使用Python随机生成数据的方法,在日常开发中竟然会遇到需要测试大量数据的地方,那么随机生成数据就可以有效的加快我们的效率,通过Python_Faker生成测试数据需要安装Faker包,需要的朋友可以参考下
    2023-10-10
  • 基于Python利用Pygame实现翻转图像

    基于Python利用Pygame实现翻转图像

    这篇文章主要介绍了基于Python利用Pygame实现翻转图像,我们将了解如何使用Pygame翻转图像,要翻转图像,我们需要使用pygame.transform.flip(Surface, xbool, ybool) 方法,该方法被调用来根据我们的需要在垂直方向或水平方向翻转图像,下面来看看具体的实现过程吧
    2022-02-02
  • 使用Python的urllib和urllib2模块制作爬虫的实例教程

    使用Python的urllib和urllib2模块制作爬虫的实例教程

    这篇文章主要介绍了使用Python的urllib和urllib2模块制作爬虫的实例教程,展现了这两个常用爬虫制作模块的基本用法,极度推荐!需要的朋友可以参考下
    2016-01-01
  • 教你使用pyinstaller打包Python教程

    教你使用pyinstaller打包Python教程

    今天带大家学习使用pyinstaller打包Python,文中有非常详细的图文示例及代码,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python实战之ATM取款机的实现

    Python实战之ATM取款机的实现

    这篇文章主要为大家详细介绍了如何利用Python语言模拟实现ATM取款机功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-09-09
  • python 实现将字典dict、列表list中的中文正常显示方法

    python 实现将字典dict、列表list中的中文正常显示方法

    今天小编就为大家分享一篇python 实现将字典dict、列表list中的中文正常显示方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python 模拟购物车的实例讲解

    Python 模拟购物车的实例讲解

    下面小编就为大家带来一篇Python 模拟购物车的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Python遗传算法Geatpy工具箱使用介绍

    Python遗传算法Geatpy工具箱使用介绍

    这篇文章主要为大家介绍了Python遗传算法Geatpy工具箱使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例

    django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例

    这篇文章主要介绍了django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python中plt.imshow与cv2.imshow显示颜色问题

    python中plt.imshow与cv2.imshow显示颜色问题

    这篇文章主要介绍了plt.imshow与cv2.imshow显示颜色问题,本文给大家介绍的非常详细,同时给大家提到了cv2.imshow()和plt.imshow()的区别讲解,需要的朋友可以参考下
    2020-07-07

最新评论