【记录】校园网自动登录保持在线

校园网一段时间后会自动断开,导致每次都需要手动登录,遂考虑自动执行脚本来保持校园网在线。

登录

curl 访问校园网登录登出接口

1
2
3
4
# 登录
curl https://p.xxu.edu.cn/api/portal/v1/login -X POST -d '{"username":"学号", "password":"密码"}'
# 登出
curl https://p.xxu.edu.cn/api/portal/v1/logout -X POST -d '{}'

加密

账号密码不明文写入脚本,这里使用 openssl 对密码加密解密

加密 encrypt.sh

1
2
3
4
5
6
7
#! /usr/bin/bash

# 密码加密后存储到文件中
echo 'your-password' | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:'encrypt-pass' > .password

# 更新文件的权限,只有该文件的所有者或 root 用户可以访问
chmod 600 .password

解密及登录 run.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#! /usr/bin/bash

USERNAME="your-username"
PASSWORD=`cat .password | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:'encrypt-pass' -d`

date
if [ "$1" = "logout" ]; then
    echo "[campus net] logout"
    curl https://p.xxu.edu.cn/api/portal/v1/logout -X POST -d '{}'
else
    echo "[campus net] login"
    curl https://p.xxu.edu.cn/api/portal/v1/login -X POST -d '{"username":"'"$USERNAME"'", "password":"'"$PASSWORD"'"}'
fi
echo

执行 ./encrypt.sh 得到密码文件后,使用 ./run 登录,./run logout 退出。

自动执行

在实验室主机 WSL 中设置 crontab 自动执行脚本,完成校园网登录,保持在线

1
2
3
4
5
$ crontab -e
# 每隔 3 天的上午 8 点执行
0 8 */3 * * cd /home/usrname/campusnet && sh /home/usrname/campusnet/run.sh >> netloging.log 2>&1
## 每分钟执行(用于测试)
# * * * * * cd /home/usrname/campusnet && sh /home/usrname/campusnet/run.sh >> netloging.log 2>&1

检查 netloging.log 日志,确保执行成功,校园网的自动登录大功告成。

Reference

0%