Skip to content

Latest commit

 

History

History
211 lines (146 loc) · 5.43 KB

File metadata and controls

211 lines (146 loc) · 5.43 KB

srun-autologin - 深澜校园网自动登录工具

这是一个为使用深澜(srun)认证系统的校园网设计的Python命令行工具。它模拟了浏览器登录过程中的加密和认证流程,帮助用户通过命令行快速登录、注销、检查状态,并提供了后台自动重连的功能。

本工具主要针对北京理工大学(BIT)的认证页面进行分析和实现,但其加密核心 crypto.py 对其他使用类似 srun_bx1 加密版本的深澜系统也有参考价值。

✨ 主要功能

  • 登录/注销: 支持通过命令行进行登录和注销操作。
  • 状态检查: 快速检查当前网络的登录状态。
  • 凭据管理: 提供安全的凭据保存机制,避免每次都输入密码。
  • 后台自动登录: 可作为一个后台守护进程运行,持续检测网络状态,一旦掉线立即自动重连。
  • 跨平台: 基于Python,可在 Windows, macOS, Linux 等系统上运行。

🚀 安装与配置

1. 环境准备

确保你的系统已经安装了 Python 3。

2. 克隆与安装依赖

首先,克隆本仓库到你的本地:

git clone <仓库地址>
cd autologin

然后,安装所需的依赖包:

pip install -r requirements.txt

3. 配置凭据

为了让脚本能够自动登录,你需要先配置并保存你的校园网账号和密码。运行以下命令,并根据提示输入你的用户名和密码:

python srun.py --config

凭据将被保存在项目目录下的 config.json 文件中。请放心,密码是经过加密处理的。

📖 使用说明

你可以通过 -h--help 参数查看所有可用的命令:

python srun.py --help

基本命令

  • 使用已保存的凭据登录(最常用):

    python srun.py
  • 手动输入凭据登录(不使用配置文件):

    python srun.py -p
  • 检查登录状态

    python srun.py -s
    # 或者
    python srun.py --status
  • 注销登录

    python srun.py --logout
  • 详细模式(显示调试信息):

    python srun.py -v

🔄 后台自动登录模式

这是本工具最强大的功能。启动后,它会成为一个后台守护进程,定期检查网络状态,如果发现掉线,会自动为你重新登录。

什么是 nohup?

nohup (no hang up) 是Linux/macOS系统的一个命令,它可以让程序在你关闭终端或注销后继续在后台运行。

基本使用

  • 启动后台自动登录(默认每5分钟检测一次):

    nohup python srun.py --auto &
  • 自定义检测间隔(每60秒检测一次):

    nohup python srun.py --auto --interval 60 &
  • 详细模式运行(输出更多调试信息):

    nohup python srun.py --auto -v &

查看运行日志

当使用 nohup 运行时,所有输出会被保存到 nohup.out 文件中:

# 查看日志
tail -f nohup.out

# 查看最后20行日志
tail -20 nohup.out

# 清空日志文件
> nohup.out

管理后台进程

  • 查看正在运行的进程

    ps aux | grep "python srun.py --auto"
  • 停止后台进程

    # 方法1:通过进程名停止
    pkill -f "python srun.py --auto"
    
    # 方法2:通过PID停止(先用ps找到PID)
    kill <PID>
  • 检查进程是否在运行

    pgrep -f "python srun.py --auto" && echo "正在运行" || echo "未运行"

系统服务式部署(推荐)

为了更好地管理后台进程,建议创建一个简单的启动脚本:

创建 start_autologin.sh

#!/bin/bash
cd /path/to/your/autologin
nohup python srun.py --auto --interval 300 > srun.log 2>&1 &
echo "自动登录服务已启动,PID: $!"

创建 stop_autologin.sh

#!/bin/bash
pkill -f "python srun.py --auto"
echo "自动登录服务已停止"

使用方式:

# 启动
chmod +x start_autologin.sh
./start_autologin.sh

# 停止
chmod +x stop_autologin.sh
./stop_autologin.sh

Windows 用户

Windows 用户可以使用以下方式在后台运行:

# 使用start命令在新窗口中运行
start /b python srun.py --auto

# 或者创建bat文件
echo python srun.py --auto > autologin.bat
start /b autologin.bat

🔧 技术实现说明

本工具的核心在于 crypto.py 模块,它精确复现了深澜认证前端JavaScript中的加密算法。主要包括:

  • xEncode: 一个TEA(微型加密算法)的变种,用于加密包含用户名、密码、IP等信息的JSON字符串。
  • 自定义Base64: 深澜系统使用了一套非标准的Base64字母表来编码 xEncode 的结果,这是成功认证的关键。本工具已实现该自定义编码。
  • HMAC-MD5SHA1: 用于生成密码的MD5摘要和最终的校验和(chksum)。

📋 常见问题

Q: 后台进程意外停止了怎么办?

A: 可以在 nohup.outsrun.log 中查看错误日志,然后重新启动进程。

Q: 如何确保开机自动启动?

A: 可以将启动脚本添加到系统的开机自启动中,或者使用crontab定时任务。

Q: 网络环境变化后需要重新配置吗?

A: 通常不需要,脚本会自动检测网络参数。如果有问题,可以使用 -v 参数查看详细信息。

🤝 贡献

欢迎提交Issue和Pull Request来帮助改进这个工具!