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


Posted in Python onMarch 31, 2021

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

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

上才艺:

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

netsh wlan show profiles

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

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

netsh wlan show profiles CMCC-CMCC

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

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

netsh wlan show profiles CMCC-CMCC key=clear

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

这个就是我的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通过正则查找微博@(at)用户的方法
Mar 13 Python
python处理图片之PIL模块简单使用方法
May 11 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
Python数据类型之Set集合实例详解
May 07 Python
pytorch打印网络结构的实例
Aug 19 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
pytorch 实现多个Dataloader同时训练
May 29 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 Python
python爬虫selenium模块详解
Mar 30 #Python
python将图片转为矢量图的方法步骤
Mar 30 #Python
一文搞懂如何实现Go 超时控制
golang中的空接口使用详解
Mar 30 #Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 #Python
Python离线安装openpyxl模块的步骤
解决Jupyter-notebook不弹出默认浏览器的问题
You might like
php设计模式 Facade(外观模式)
2011/06/26 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
对于Python的框架中一些会话程序的管理
2015/04/20 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python实现textrank关键词提取
2018/06/22 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
Python collections模块的使用方法
2020/10/09 Python
临床医学大学生求职信
2013/09/28 职场文书
高中的职业生涯规划书
2013/12/28 职场文书
护士的自我鉴定
2014/02/07 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
业务内勤岗位职责
2014/04/30 职场文书
教师节倡议书
2014/08/30 职场文书
家庭教育的心得体会
2014/09/01 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
工会经费申请报告
2015/05/15 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript