如何利用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搭建简易服务器分析与实现
Dec 15 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
Python3实现Web网页图片下载
Jan 28 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
用python实现简单EXCEL数据统计的实例
Jan 24 Python
Python3几个常见问题的处理方法
Feb 26 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
Python爬取网页信息的示例
Sep 24 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无限分类源码分享(思路不错)
2011/10/13 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
PHP中文乱码解决方案
2015/03/05 PHP
微信红包随机生成算法php版
2016/07/21 PHP
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
js获取url传值的方法
2015/12/18 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
详解JS数值Number类型
2018/02/07 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python实现文本文件合并
2015/12/29 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
幼儿园春游活动方案
2014/01/19 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
目标责任书格式
2014/07/28 职场文书
党员倡议书
2015/01/19 职场文书
房贷收入证明范本
2015/06/12 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript