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()
Python实现自动切换wifi
于 2023-08-18 10:06:30 首次发布