重庆大学校园网哆点登陆脚本,基于 curl 和 (b)ash。
在虎溪校区全部功能正常工作。
老校区登陆功能(duodian_login
)正常工作且返回正确返回值,注销功能(duodian_logout
)工作但不返回正确返回值,判断是否登陆(is_duodian_logined
)不工作。(help wanted)
先用 . ./cqu-duodian-curl.sh
导入脚本,之后可以调用以下相应函数。
老校区使用请在导入脚本后运行drcom_url_args="$drcom_url_args_old"
。
以下操作均会把哆点登陆服务器返回的网页保存至 return_html
变量(可用于调试、登陆失败时进一步解析失败原因等目的)。
用法:duodian-login <用户名> <密码> [1]
其中用户名和密码是校园网密码,第三个参数置为 1 时使用双终端登陆方式
返回值:
0(真) 登陆成功
1(假) 登陆失败
示例:
. ./cqu-duodian-curl.sh
duodian_login 201xxxxx password || echo Login failed!
双终端登陆示例:
. ./cqu-duodian-curl.sh
duodian_login 201xxxxx password 1 || echo Login failed!
用法:is_duodian_logined
查询登陆状态(老校区暂不可用)
返回值:
0(真) 登陆状态
1(假) 未登陆状态
示例:
. ./cqu-duodian-curl.sh
if is_duodian_logined
then
echo 已登陆
else
echo 未登陆
fi
用法:duodian_logout
查询登陆状态
返回值:
0(真) 成功注销
1(假) 未成功注销(可能由于调用前已处于未登陆状态)
该返回值在老校区不正确
示例:
. ./cqu-duodian-curl.sh
duodian_logout
登陆后保持登陆只需保持 IP 地址不变,而无需心跳包或再次登陆(但是我个人的实践还是半分钟检测一次)。
(这里请注意不要频繁重新登陆,否则在 http://user.cqu.edu.cn 处的登陆日志会变得很多)
但如果某些原因下线(如被自己别处的登陆挤掉,或者虎溪工作日凌晨断网),则需重新登陆。
duodian_login
第三个参数置为 1
的登陆可与另一地址上 drcom 或 duodian_login
第三个参数留空的登陆共存。
通过这种办法可以实现一号双拨,经测试能获得双倍网速。
可以使用 https 进行登陆以防止中间人攻击,此时可以通过重大哆点的证书(www-doctorcom-com.pem)进行验证。
如果需要使用明文 http,可以将在导入脚本后 drcom_url_args
变量置为 10.254.7.4
(虎溪校区)或 202.202.0.163
(老校区)。