Python实现自动切换wifi

import time

import pywifi
import urllib3
from pywifi import const


def break_wifi():
    # 页面ip池满,断开wifi,重连!
    wifi = pywifi.PyWiFi()  # 声明wifi类对象
    iface = wifi.interfaces()[0]  # 读取第一个wifi
    # 获取无线网卡信息
    wifiname = iface.scan_results()[0].ssid  # 获取WiFi的名字
    iface.disconnect()  # 断开第一个wifi

    # wifi名字1
    if "XLTZN1" == wifiname:
        name_ssid = "XLTZN"
        name_key = 'g83638111'
    # wifi名字2
    elif "XLTZN-5G" == wifiname:
        name_ssid = "XLTZN-5G"
        name_key = "g83638111"
    # 判断wifi是否断开,没有断开在断开一次
    if iface.status() in [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]:
        wifi = pywifi.PyWiFi()  # 声明wifi类对象
        iface = wifi.interfaces()[0]  # 读取第一个wifi
        iface.disconnect()  # 断开第一个wifi

    # 切换wifi
    profile = pywifi.Profile()
    profile.ssid = name_ssid  # 切换wifi名字
    profile.auth = const.AUTH_ALG_OPEN
    profile.akm.append(const.AKM_TYPE_WPA2PSK)
    profile.cipher = const.CIPHER_TYPE_CCMP  # 获取wifi在第几个
    profile.key = name_key  # 切换wifi的密码
    iface.remove_all_network_profiles()
    tmp_profile = iface.add_network_profile(profile)
    iface.connect(tmp_profile)


def connetstatus():
    try:
        http = urllib3.PoolManager()
        http.request('GET', 'https://baidu.com')
        return "true"
    except  Exception as e:
        return "false"


if __name__ == '__main__':
    while (True):
        time.sleep(5)
        reslt = connetstatus()
        if "true" == reslt:
            print("网络正常")
        else:
            break_wifi()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值