如何利用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 相关文章推荐
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 Python
跟老齐学Python之开始真正编程
Sep 12 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
Python flask框架post接口调用示例
Jul 03 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
python 怎样进行内存管理
Nov 10 Python
python SOCKET编程基础入门
Feb 27 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
加强版phplib的DB类
2008/03/31 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
python三大神器之fabric使用教程
2019/06/10 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
python利用opencv实现颜色检测
2021/02/23 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
大学生物业管理求职信
2013/10/24 职场文书
技能比赛获奖感言
2014/02/14 职场文书
认错检讨书
2014/10/02 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
导游词格式
2015/02/13 职场文书
会议通知范文
2015/04/15 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
创业计划书之校园超市
2019/09/12 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Nginx HTTP跳转至HTTPS
2022/05/15 Servers