如何利用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中的函数编程
Apr 13 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
python3正则提取字符串里的中文实例
Jan 31 Python
python中删除某个元素的方法解析
Nov 05 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
Python threading.local代码实例及原理解析
Mar 16 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
如何写python的配置文件
Jun 07 Python
Python 制作自动化翻译工具
Apr 25 Python
python单向链表实例详解
May 25 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
咖啡语言
2021/03/03 咖啡文化
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
vue实现选中效果
2020/10/07 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
python更新列表的方法
2015/07/28 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
python rsa 加密解密
2017/03/20 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
AJAX都有哪些有点和缺点
2012/11/03 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
2013年大学生的自我鉴定
2013/10/24 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
建设工程授权委托书
2014/09/22 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
车间主任岗位职责
2015/02/03 职场文书
分享Python异步爬取知乎热榜
2022/04/12 Python
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python
Python如何让字典保持有序排列
2022/04/29 Python