失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > [Python]校园网(网页认证)开机/断网自动连接

[Python]校园网(网页认证)开机/断网自动连接

时间:2019-06-14 15:23:55

相关推荐

[Python]校园网(网页认证)开机/断网自动连接

目录

简介

环境配置

实现过程

分析校园网登录页面,获取URL

编写代码

运行程序

打包程序

使用说明

配置账号密码

设置开机启动

测试

简介

针对网页认证方式的校园网,实现登录的自动化。苦于校园网断线,断电重启之后无法借助远程软件(teamview、todesk、向日葵等)进行远程的问题。

1、开机自动连接

2、设置时间检查登录状态 自动重连

环境配置

主要版本如下:

python3.9

requests 2.28.1

pyinstaller 4.8

建议安装conda创建新的虚拟环境,然后配置到pycharm,便于后续应用

新建环境:conda create -n name python=3.9 name换成自定义的英文名激活环境:conda activate name安装所需的包

conda install requestsconda install pyinstaller

实现过程

分析校园网登录页面,获取URL

打开登录界面,填入你自己的账号和密码(先别点击登录),然后按下 F12

点击了登录后:

这个 URL 中包含了学号和密码和IP(上图打码的地方);使用 GET 方式来登录,这意味着我们的账号和密码是直接以明文的形式出现在 URL 中,通过 GET 请求来登录校园网会方便很多

如果学校是像这样用 GET 请求直接登录的,可以试试复制,直接访问这个URL,如果可以直接登录,那边可以按照接下来的方法实现自动登录

编写代码

一般直接替换schoolWebLoginURL 为前文URL,将schoolWebURL替换为学校的验证网址,即可实现本机登录;

为便于打包使用、修改账号密码以及在不同的主机使用

创建data.txt文件 填写保存校园网账号密码

2. 基于socket自动获取本机IP

##@author:runepic#@date:1207# _*_ coding : utf-8 _*_import re # 正则表达式,用于匹配字符import requests # 用于向目标网站发送请求import timeimport socketimport datetimeschoolWebURL="http://10.10.10.9"# 函数 gethostname() 返回当前正在执行 Python 的系统主机名ip = socket.gethostbyname(socket.gethostname())print(ip)data = []file = open("data.txt",'r') #打开文件file_data = file.readlines() #读取所有行name = file_data[0].split(':')[1].replace('\n','') password = file_data[1].split(':')[1].replace('\n','') #tmp_list[-1] = tmp_list[-1].replace('\n',',') #去掉换行符while(True):response = requests.get(schoolWebURL)# print(response)# 正则表达式,匹配<title>标签中的内容pattern = pile('<title>(.*?)</title>', re.S)title = re.findall(pattern, response.text)title = title[0] # 将格式转为字符串# print(title)if title == '注销页': # 根据上面的分析填入相应的字符 # print("保持登录,请不要关闭窗口...")time.sleep(60*60)passelse:# 使用GET方式登录校园网# 这行是你需要根据自己的情况修改的地方schoolWebLoginURL = 'http://10.10.10.9:801/eportal/?c=Portal&a=login&login_method=1&user_account='+name+'&user_password='+password+'&wlan_user_ip='+ip+'&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.0' # requests.get(schoolWebLoginURL)response = requests.get(schoolWebLoginURL).status_code # 直接利用 GET 方式请求这个 URL 同时获取状态码# print("状态码{}".format(response)) # 打印状态码if(response==200):print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+"登录成功,请不要关闭窗口...")time.sleep(5)

运行程序

退出校园网,执行代码,检查是否登陆成功

打包程序

conda中激活自定义的环境,cd进入代码目录

输入:pyinstaller -F login.py

等待打包完成即可:

在 dist 目录下就有一个 exe 程序,将txt文件复制到dist文件夹中,像刚才那样断开校园网然后运行这个 exe 程序看看能否正常登录校园网

使用说明

配置账号密码

在data.txt文件中配置账号密码

设置开机启动

创建exe程序桌面快捷方式

Win+R 输入shell:startup回车执行

将快捷方式放入

测试

双击exe 显示本机IP即为正常状态 不要关闭窗口可保持校园网登录(每小时自动检查一次登录状态),不慎关闭可重新打开

设置开机启动之后,开机即可自动登录校园网,不要关闭窗口

如果觉得《[Python]校园网(网页认证)开机/断网自动连接》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。