楚雄师范学院宿舍校园网认证实现方案
认证脚本最新版本解析
| 回顾次数 | 回顾时间 |
|---|---|
| 1 | 2025年/3月/30 |
| 2 | |
| 3 |
设备:一台红米ac2100
脚本本体:(该脚本为bash脚本,需要部署在路由器内)
采用的openwrt系统为bleachwrt
#!/bin/bash
###UserInfo
username=your user_id
password=114514
###Settings
test_url=http://www.msftconnecttest.com/redirect
pass_url=https://www.msn.cn/zh-cn
auth_url=http://106.60.4.60:8016
period=3
###Function
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
#
function log() {
time=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "\n[$time] $*\n"
}
#
function login() {
redirect_url=$(curl -Ls -w "%{url_effective}" -o /dev/null "$test_url")
if [[ ! $redirect_url =~ ^$pass_url ]];then
if [[ $redirect_url =~ ^$auth_url ]];then
paramstr=$(urldecode "$(curl -Ls "$redirect_url" | sed -n 's/.*paramStr=\([^"]*\).*/\1/p')")
redirect_url=$(curl -Ls -w "%{url_effective}" -o /dev/null -F "paramStr=$paramstr" -F "UserName=$username" -F "PassWord=$password" "$auth_url/authServlet")
if [[ "$redirect_url" == *"logon.jsp"* ]];then
log "Auth Pass" "paramstr=$paramstr"
return 0
fi
log "Auth Fail"
return 1
fi
log "Fail"
return 2
fi
log "Pass"
return 0
}
#
function logout() {
curl -Ls -w "%{url_effective}" -o /dev/null -F "paramStr=$1" "$auth_url/logoutServlet"
redirect_url=$(curl -Ls -w "%{url_effective}" -o /dev/null "$test_url")
if [[ ! $redirect_url =~ ^$pass_url ]];then
log "Logout Successful"
return 0
fi
log "Logout Fail"
return 1
}
###Login
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
fail_count=0
max_retries=10
while true; do
login
login_result=$?
case $login_result in
0)
exit 0
;;
*)
((fail_count++))
if [ $fail_count -ge $max_retries ];then
log "Manbaout"
exit 1
fi
;;
esac
sleep $period
done
fi
本脚本实现了认证楚雄师范学院宿舍宽带的功能,基本实现原理是连接上光猫后执行脚本路由器尝试访问http://www.msftconnecttest.com/redirect 如果未认证,则会跳转到106认证网站上进行认证操作,如果已经认证了,则会跳转到msn网站,用于判断是否认证成功,若成功则显示pass
折腾过程中用到的linxu命令
这个shell脚本涉及到一些bash专属语法,所以需要先把openwrt默认的ash转为bash
opkg update&opkg install bash(还有一个功能可以保存历史记录)
3.修改 root 用户的 shell 解释器
编辑 /etc/passwd 文件
修改第一行(第一行就是 root 用户)中的 /bin/ash,改成 /bin/bash
root❌0:0:root:/root:/usr/bin/bash(这个地方改为bash)
mv (新文件) (旧文件) 替换操作
vim编辑器中的一些基础操作:
快速删除全部内容:
在vim的普通模式下键入"ggdG"即可删除其中全部内容。说明:gg:光标跳转到该文件的行首;
dG:删除光标行及其以下行的全部内容:wq保存
:q!强制退出
扩充
inux vim退出命令(保存与不保存)
- :w - 保存文件,不退出 vim
- :w file -将修改另外保存到 file 中,不退出 vim
- :w! -强制保存,不退出 vim
- :wq -保存文件,退出 vim
- :wq! -强制保存文件,退出 vim
- :q -不保存文件,退出 vim
- :q! -不保存文件,强制退出 vim
- :e! -放弃所有修改,从上次保存文件开始再编辑

浙公网安备 33010602011771号