/THU_Net_Login

清华大学校园网认证脚本,结合cron实现保持校内网络连接,按需手动连接校外网络

Primary LanguageJavaScript

清华服务器校园网认证脚本

简介

通过 usereg 为服务器进行准入代认证时,经过若干时间(难以确定),服务器会自动断网。经测试,间歇性 ping 外网地址(ping -s 1500 -c 4 www.jd.com )无法解决断网问题。断网后再次准入代认证时,若使用不同校园网账号,无法正常登陆,须进入服务器图形界面将原校园网账号断开连接后才可正常联网。

为解决该问题,写了基于 python 的服务器自动断网联网脚本。校园网对于断网过程并无验证,所以使用固定请求即可。联网时,需要进行一系列的加密操作,这里一开始为了节省时间,直接利用js2py库调用 js 脚本中的加解密方式(xEncode 无 python 版,base64 与正常 base64 加密结果不同),但是加密结果是错误的(简单字符串加密经验证是正确的,但登陆时发送的 payload 加密结果是错误的,原因不明),经过一番痛苦的调试才定位到问题。最后感谢huxiaofan1223大佬提供的 python 版加密算法,省去了 js 转写 python 的麻烦。

使用方法

运行 python main.py 按照提示操作即可。

运行 python main.py -m ri -u username -p password 即可使服务器获取访问外网权限。此方法会在命令行历史记录中显示密码。

运行 python main.py -m rl -u username -p password 即可断开服务器外网连接,仅保留内网连接。此方法会在命令行历史记录中显示密码。

参数说明

-m/--mode:
    -l: local, 连接校园内网
    -i: internet, 连接互联网
    -o: log off, 断开认证
    -rl: relogin local, 断开认证后再连接内网,即踢掉原来认证账号后再重新登陆,解决认证失败问题
    -ri: relogin internet, 断开认证后再连接互联网,同上
-u/--username: 校园网账号
-p/--password: 校园网密码
--ac_id: 校园网认证软件参数,意义不明,仅供调试使用,默认值159