校园网掉线自动重连小助手--Python

一背景

PC在连接学校校园网的情况下如果持续一段时间未使用足够多的流量则会掉线,严重影响了电脑不在身边时通过向日葵远程的访问.因此特地写了一个校园网自动重连的小助手.

二获取数据包

连接校园网,进入认证界面,如下图
在这里插入图片描述
按F12,点击Network和Preserve log准备抓包
在这里插入图片描述
输入账号密码,点击登录,此时会出现一大堆数据包,一般选择第一个在这里插入图片描述
下图中的就是我们写代码时需要用到的数据
在这里插入图片描述
在这里插入图片描述

编写自动重连脚本(附带日志)

思路: 每隔60s ping一次百度,如果未ping通则断掉当前WIFI(我所在学校每天凌晨2点左右会断网,如果不进行重新连接就算认证成功也没有网),再连接校园网并认证.

Ping www.baidu.com判断当前网络是否可以上网

    def Ping(self):
        iplist = list()
        ip = 'www.baidu.com'
        # 这里使用subprocess模块而不使用os模块,因为os模块在打包后执行cmd命令会出现黑色命令框
        backinfo = subprocess.call('ping www.baidu.com -n 1', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        # print(backinfo)
        if backinfo:
            print('no')
            self.connectFlag = 0
            logging.info('网络未连接')
        else:
            iplist.append(ip)
            self.connectFlag = 1

断开当前网络

    def disconnect(self):  # 断开wifi
     	# 这里使用subprocess模块而不使用os模块,因为os模块在打包后执行cmd命令会出现黑色命令框
        subprocess.call("netsh wlan disconnect", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

连接校园网

    def connect_wifi(self, name=None):  # 连接wifi
        # 这里使用subprocess模块而不使用os模块,因为os模块在打包后执行cmd命令会出现黑色命令框
        cmd = "netsh wlan connect name=" + str(name)
        subprocess.call(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

自动认证(因为方便后期用户的使用,创建了一个.json的配置文件,通过读字典的方式来获取不同的用户信息)

   def connect(self):  # 自动认证
        myaddr = self.getlocalIP()
        userId = self.data["userId"]  # 用户名
        password = self.data["password"]  # 密码
        service = self.data["service"]
        queryString = "wlanacname%3DAC6805%26nasip%3D172.18.95.254%26wlanuserip%3D" + myaddr +"%26wlanparameter" \
                                                                                                  "%3D98%3A3b%3A8f" \
                                                                                                  "%3Abd%3A6b%3A72" \
                                                                                                  "%26url%3Dhttp%3A" \
                                     
  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值