Python WiFi link
这段代码是基于 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() 这段 Python 代码似乎是一个用于连接 Wi-Fi 的脚本。代码中引用了 pywifi 库,但是代码中缺少 pywifi 库的导入语句。如果你运行这段代码时遇到了 ImportError,缺少 pywifi 库
pip install pywifi
另外,代码中有一些语法问题:
def main() -> object: 中的 -> object 这一语法可以省略,直接写成 def main(): 即可。
if __name__ == ("__main__"): 中的双引号写错了,应该使用单引号或双双引号
修复后代码如下:
import pywifi
import time
import sys
from pywifi import const
def main():
wifi = pywifi.PyWiFi()
ifaces = wifi.interfaces()
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
pswd = sys.argv
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" 是你保存该脚本的文件名。 这个我试过。速度太慢了。
页:
[1]