windows10程序自动重连WiFi

背景

  • 我不知道是我的路由器有问题么,还是windows10系统,老是过一会儿就没网了在这里插入图片描述,然后重连又会好一会儿,为此我找了点资料,去做自动重连的脚本。

基本命令

  • 查看周围可用 wifi
 netsh wlan show networks mode=bssid

在这里插入图片描述

  • 连接过的wifi(已经配置过的)
    在这里插入图片描述
  • 断开连接
netsh wlan disconnect
  • 指定所需配置文件及 ssid 连接;我连接的是ChinaNet-efCC
netsh wlan connect ssid=ChinaNet-efCC name=ChinaNet-efCC

在这里插入图片描述

  • 有了基础命令就可以做很多操作了

写自动脚本

# -*- coding: utf-8 -*-
'''
zzq
重连WiFi
2020年5月22日23:56:24
'''
import subprocess
import time
import os
from time import strftime, localtime

ssid = "ChinaNet-efCC"


def reconnect():
    '''
    重连
    '''
    print("%s 正在重连WiFi" % strftime("%Y-%m-%d %H:%M:%S", localtime()))
    os.system("netsh wlan disconnect")
    os.system("netsh wlan connect ssid=%s name=%s" % (ssid, ssid))


def check_wifi():
   
    subp = subprocess.Popen("ping baidu.com", stdout=subprocess.PIPE)
    while subp.poll() is None:
        text = str(subp.stdout.readline(), encoding='utf=8')
        print(" %s" % text)
        if match(text):
            reconnect()
            break
       


def match(text):
    '''
    匹配
    '''
    # 如果匹配到failure就认为是没网了   我这系统是英文版  其他的可以改下匹配规则
    if text:
        if text.find('failure') >= 0 or text.find('could not find host') >= 0:
            return True
        else:
            return False
    else:
        return False


if __name__ == '__main__':
    while True:
        check_wifi()
        time.sleep(20)


  • 我这里是windows10英文版本,如果没网会是这样的结果;我去匹配了字符串,判断要不要重连。
    在这里插入图片描述

  • 为了测试,我中途断网,看下效果是成功的
    在这里插入图片描述

posted on 2020-05-23 00:24  愤怒的苹果ext  阅读(126)  评论(0编辑  收藏  举报

导航