自动连网

以下为豆包的回答,亲测可用

Python
import subprocess
import time


def ping_host(host="8.8.8.8"):
    try:
        # 执行 ping 命令
        result = subprocess.run(['ping', '-c', '1', host], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        return result.returncode == 0
    except Exception as e:
        print(f"Ping 时发生错误: {e}")
        return False


def connect_to_wifi(ssid, password):
    try:
        # 使用 nmcli 命令连接 Wi-Fi
        subprocess.run(['nmcli', 'device', 'wifi', 'connect', ssid, 'password', password], check=True)
        print(f"已成功连接到 {ssid}")
    except subprocess.CalledProcessError as e:
        print(f"连接到 {ssid} 时出错: {e}")


def main(ssid, password):
    while True:
        if not ping_host():
            print("网络连接已断开,尝试重新连接...")
            connect_to_wifi(ssid, password)
        time.sleep(10)  # 每 10 秒检查一次网络连接


if __name__ == "__main__":
    # 请替换为你的 Wi-Fi 名称和密码
    wifi_ssid = "Your_WiFi_SSID"
    wifi_password = "Your_WiFi_Password"
    main(wifi_ssid, wifi_password)