Last active
November 19, 2023 14:25
-
-
Save binsee/4dfddb6b1be2803396250b7772056f1c to your computer and use it in GitHub Desktop.
天津师范大学 校园网登陆脚本 Dr.Com
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# 天津师范大学 校园网登陆脚本 2021.03 | |
# 适用于: Padavan | |
# by: binsee | |
# 本脚本保存至 /etc/storage/drcom_cron.sh | |
# 添加计划任务 | |
#『系统管理 - 服务 - 计划任务』 | |
# */10 * * * * /etc/storage/drcom_cron.sh | |
# 添加到WAN口上线后激活 | |
#『自定义设置 - 脚本 - 在 WAN 上行/下行启动后执行:』中 | |
# 写到 「if [ $1 == "up" ] ; then」这行后边 | |
# /etc/storage/drcom_cron.sh | |
# --------- 配置区 --------- | |
server=115.24.187.161 | |
user=123@cmcc | |
# 账号后缀 | |
# 电信 @telecom | |
# 移动 @cmcc | |
# 联通 @unicom | |
# 校园网(无后缀) | |
password=000000 | |
# --------- 配置区 --------- | |
html_file="/tmp/drcom_html.log" | |
login_out_file="/tmp/drcom_login.log" | |
logger -t "【Dr.COM网页认证】" "开始定时检测" | |
curl -s "http://${server}" > ${html_file} | |
check_web=`grep "Dr.COMWeb" ${html_file} | head -n1` | |
check_status=`grep "Dr.COMWebLoginID_0.htm" ${html_file} | head -n1` | |
# Dr.COMWebLoginID_0.htm 登陆页(未登陆) | |
# Dr.COMWebLoginID_1.htm 注销页(已登录) | |
# Dr.COMWebLoginID_2.htm 登陆失败页 | |
# Dr.COMWebLoginID_3.htm 登陆成功页 | |
if [[ "$check_web" == "" ]]; then | |
logger -t "【Dr.COM网页认证】" "访问认证网页失败" | |
elif [[ "$check_status" != "" ]]; then | |
#尚未登录 | |
logger -t "【Dr.COM网页认证】" "上网登录窗尚未登录" | |
ip=`grep -Eo "v46ip='[0-9\.]+'" ${html_file} | sed -r "s/v46ip='([0-9\.]+)'/\1/g"` | |
if [[ "$ip" == ""]]; then | |
ip=`grep -Eo 'ss5="[0-9\.]+"' ${html_file} | sed -r 's/ss5="([0-9\.]+)"/\1/g'` | |
fi | |
if [[ "$ip" == ""]]; then | |
ip=`grep -Eo "v4ip='[0-9\.]+'" ${html_file} | sed -r "s/v4ip='([0-9\.]+)'/\1/g"` | |
fi | |
if [[ "$ip" == ""]]; then | |
ip=`grep -Eo 'ss3="[0-9\.]+"' ${html_file} | sed -r 's/ss3="([0-9\.]+)"/\1/g'` | |
fi | |
if [[ "$ip" == ""]]; then | |
logger -t "【Dr.COM网页认证】" "获取当前内网ip失败" | |
else | |
logger -t "【Dr.COM网页认证】" "当前内网ip:${ip}" | |
random=$((`date +%s%N | md5sum | tr -cd "[0-9]" | head -c 4`*1)) | |
url="http://${server}:801/eportal/?c=Portal&a=login&callback=dr1003&login_method=1&user_account=${user}&user_password=${password}&wlan_user_ip=${ip}&wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.2&v=${random}" | |
curl -s "$url" \ | |
-H 'Connection: keep-alive' \ | |
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57' \ | |
-H 'Accept: */*' \ | |
-H 'Referer: http://${server}/' \ | |
-H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \ | |
--compressed \ | |
-o ${login_out_file} | |
result=`grep -Eo '"result":"[0-9]+"' ${login_out_file} | sed -r 's/"result":"([0-9]+)"/\1/g'` | |
result=`[[ "$result" == 1 || "$result" == "ok" ]] && echo "登陆成功" || echo "登陆失败"` | |
logger -t "【Dr.COM网页认证】" "上网登录窗未登录,尝试登陆结果:${result} " `cat ${login_out_file}` | |
fi | |
else | |
#已经登录 | |
logger -t "【Dr.COM网页认证】" "上网登录窗之前已登录" | |
fi | |
logger -t "【Dr.COM网页认证】" "结束定时检测" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
感谢以下文章的作者,这个脚本是参考了他们的成功做出来的: