一个不依赖浏览器自动化的深澜校园网登录脚本,基于 GET/POST 请求实现登录、下线、状态查询和保活。
适配入口(可配置):
http://210.43.112.9/tpl/default/login_account.html
status:查询在线状态login:登录并校验拨号状态logout:下线keep-alive:定时检查并自动重连- 自动处理 CSRF Token 与 Session Cookie
- 自动读取
.env(不会覆盖已 export 的环境变量)
srun_auto_login.py:主程序.env.example:配置模板.gitignore:忽略规则
- Python 3.9+
- 网络可访问目标门户地址
- 复制配置模板
cp .env.example .env- 编辑
.env,至少填写
SRUN_USERNAME=你的账号
SRUN_PASSWORD=你的密码- 运行
python3 srun_auto_login.py status
python3 srun_auto_login.py login
python3 srun_auto_login.py logout
python3 srun_auto_login.py keep-alive --interval 60python3 srun_auto_login.py --help子命令:
statusloginlogoutkeep-alive --interval <秒>
常用参数:
--base-url:门户根地址,默认http://210.43.112.9--login-page-url:登录页地址--probe-url:追加重定向参数探测 URL(可重复)--no-auto-detect:关闭自动探测switchip/nasId/wlanuserip/mac
login 只有在满足以下任一条件时才判定网络可用:
dialCode == ok:dialupdialMsg包含已拨号成功
如果登录成功但拨号未确认,脚本会在设定时间内轮询 status;超时后自动尝试下线并返回失败。
相关变量:
SRUN_DIAL_VERIFY_SECONDSSRUN_DIAL_VERIFY_INTERVAL
- 成功:返回
0 - 参数缺失:返回
2 - 校验失败:返回
3/4 - 需要验证码:返回
5 - 登录失败:返回
6 - 拨号未就绪:返回
7
LOGIN_NEEDS_CAPTCHA
- 门户要求验证码,先网页登录一次后重试。
CSRF token mismatch
- 必须由同一会话先请求
/api/csrf-token再提交登录,脚本已内置该流程。
- 账号密码正确但失败
- 尝试补充
.env里的SRUN_ISP、SRUN_NAS_ID、SRUN_USER_IPV4、SRUN_USER_MAC。
- 不要提交
.env到仓库 - 不要在公开日志中打印真实账号密码
本项目仅用于你有授权的网络环境自动登录与运维。请遵守学校和网络服务方的使用政策。
This project is licensed under the MIT License. See LICENSE.