吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1341|回复: 2
收起左侧

[学习记录] Python WiFi link

[复制链接]
Skynet520 发表于 2023-5-12 10:43
这段代码是基于 PyWiFi 库来实现 Python WiFi 自动连接的案例
  • 初始化 PyWiFi 实例和 wifi 网卡接口
  • 将 wifi 网卡接口断开当前连接
  • 扫描周围可用的 WiFi 热点,并获取热点名称和密码(通过命令行参数传递)
  • 遍历扫描到的热点列表,找到与输入的热点名称匹配的热点
  • 如果找到了符合条件的热点,根据热点的安全配置信息创建一个 WiFi 配置文件对象,并将密码加入到配置文件中
  • 清除 wifi 网卡接口中已有的所有 WiFi 配置文件,并将新的 WiFi 配置文件添加到 wifi 网卡接口中
  • 连接指定的 WiFi 热点,并等待 5 秒钟,检查是否连接成功。
  • 如果连接成功,则输出 "Link:OK";否则输出 "WifiPassword:NG" 或 "Link:NG"





import pywifi
import time
import sys

from pywifi import const

def main() -> object:
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    ifaces.disconnect()
    time.sleep(1)
    wifistatus = ifaces.status()
    if wifistatus == const.IFACE_DISCONNECTED:
        ifaces.scan()
        time.sleep(2)
        SSIDS = ifaces.scan_results()
        ssid =(sys.argv[1])
        pswd =(sys.argv[2])
        for SSID in SSIDS:
            #检查是否扫描到对于wifi
            if SSID.ssid== ssid:
                profile = pywifi.Profile()
                profile.ssid = SSID.ssid
                profile.auth = const.AUTH_ALG_OPEN
                profile.akm.append(const.AKM_TYPE_WPA2PSK)
                profile.cipher = const.CIPHER_TYPE_CCMP
                profile.key = pswd
                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:
                    print("Link:OK")
                    return
                else:
                    print("WifiPassword:NG")
                    return
    print("Link:NG")

if __name__ == ("__main__"):
    main()

免费评分

参与人数 1吾爱币 +1 收起 理由
fengdaokanhai + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

law.liu 发表于 2023-5-12 17:45
这段 Python 代码似乎是一个用于连接 Wi-Fi 的脚本。代码中引用了 pywifi 库,但是代码中缺少 pywifi 库的导入语句。如果你运行这段代码时遇到了 ImportError,缺少 pywifi 库

pip install pywifi

另外,代码中有一些语法问题:

def main() -> object: 中的 -> object 这一语法可以省略,直接写成 def main(): 即可。

if __name__ == ("__main__"): 中的双引号写错了,应该使用单引号或双双引号

修复后代码如下:

[Python] 纯文本查看 复制代码
import pywifi
import time
import sys
from pywifi import const

def main():
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    ifaces.disconnect()
    time.sleep(1)
    wifistatus = ifaces.status()
    if wifistatus == const.IFACE_DISCONNECTED:
        ifaces.scan()
        time.sleep(2)
        SSIDS = ifaces.scan_results()
        ssid = sys.argv[1]
        pswd = sys.argv[2]
        for SSID in SSIDS:
            #检查是否扫描到对于wifi
            if SSID.ssid == ssid:
                profile = pywifi.Profile()
                profile.ssid = SSID.ssid
                profile.auth = const.AUTH_ALG_OPEN
                profile.akm.append(const.AKM_TYPE_WPA2PSK)
                profile.cipher = const.CIPHER_TYPE_CCMP
                profile.key = pswd
                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:
                    print("Link:OK")
                    return
                else:
                    print("WifiPassword:NG")
                    return
    print("Link:NG")

if __name__ == "__main__":
    main()


在运行代码之前,你需要在命令行中传递两个参数,分别是 Wi-Fi 的 SSID 和密码。例如,如果你要连接一个名为 "MyWifi" 的 Wi-Fi,密码为 "password123",则可以在命令行中输入以下命令来运行该脚本
python your_script.py MyWifi password123

其中,"your_script.py" 是你保存该脚本的文件名。
yang0318 发表于 2023-5-19 14:19
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表