一个在后台定期检测网络连通性、掉线后自动登录校园网的 Python 脚本,带日志记录、重试与优雅退出。
- 语言与平台:Python 3.8+(Windows)
- 依赖:requests, colorama(详见 requirements.txt)
- 日志:默认输出到 campus_auth.log
- 周期性检测网络连通性,掉线自动发起登录
- 带最大重试次数与重试间隔
- 兼容 gzip/不同编码的响应解码
- 可配置检测间隔、请求超时、日志等级/文件
- Ctrl+C 优雅退出,记录关闭
- campus_auto_auth.py:主程序(包含函数级中文注释/文档字符串)
- config.json:配置文件(用户名、密码、门户地址、检测间隔等)
- requirements.txt:依赖清单
- campus_auth.log:运行后生成的日志文件
- 安装 Python 3.8+ 并确保添加到 PATH。
- 打开 PowerShell,进入项目目录:
cd c:\Users\33012\Desktop\linux校园网认证python
- 创建并启用虚拟环境(避免库冲突):
python -m venv .venv
..venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
- 配置账号与参数:编辑 config.json,至少填写 username 与 password,例如:
{
"username": "学号",
"password": "密码",
"post_url": "http://172.16.100.102/eportal/InterFace.do?method=login",
"get_url_template": "http://172.16.100.102/eportal/success.jsp?userIndex={userIndex}&keepaliveInterval=0",
"test_urls": [
"http://www.baidu.com",
"http://www.qq.com",
"http://172.16.100.102"
],
"check_interval": 20,
"max_retries": 3,
"retry_delay": 5,
"timeout": 10,
"log_level": "INFO",
"log_file": "campus_auth.log"
}
- 运行程序:
python campus_auto_auth.py
显示“按 Ctrl+C 停止程序”后即开始后台巡检与自动认证(前台运行,可最小化 PowerShell)。
提示:如需停止,按 Ctrl+C;如需查看详细日志,将 config.json 中 log_level 设置为 "DEBUG"。
如需开机自启,建议使用 Windows 任务计划程序:
- 触发器:登录时
- 操作:启动程序,程序/脚本填写 Python 可执行文件路径,参数填写项目内脚本路径,例如:
C:\Path\to\python.exe c:\Users\33012\Desktop\linux校园网认证python\campus_auto_auth.py
- 起始于:项目目录
- 勾选“使用最高权限运行”(取决于网络策略)
- 日志文件:campus_auth.log
- 常见问题:
- 登录失败:检查账号/密码是否正确,或门户地址是否可达
- 一直掉线:调整 check_interval、retry_delay、timeout;确认 test_urls 可在内网访问
- GBK/UTF-8 编码报错:程序已内置多种解码策略,保持默认即可
- 避免在公共仓库提交明文密码。若需开源,请改用环境变量或在提交前清空 config.json 的敏感字段。
本项目仅用于学习与个人使用,请遵循所在校园网络的使用规范。