针对武汉城市职业学院校园的自动认证shell
密码URL编码
在编写脚本前你需要将你的校园网密码进行URL编码并保存编码后的结果,如果你的密码并没有存在特殊字符,那么编码后的结果与编码前的结果是一样的。
依赖下载
opkg update #更新软件列表
opkg install curl #下载curl
脚本编写
cd /root #切换到root目录
touch login.sh #创建脚本文件
vim login.sh #编辑文件
将下面代码复制进login.sh并配置文件中的account和password信息
#!/bin/bash
ACCOUNT='你的校园网账号'
PASSWORD='编码后的密码'
LOG_FILE="/var/log/campus_net_login.log"
IP=$(ifconfig wan | grep 'inet addr' | grep -oE '([0-9]{1,3}.){3}[0-9]{1,3}' | head -n 1)
ping -c 1 -W 5 www.baidu.com > /dev/null
if [ $? -ne 0 ]; then
echo "$(date): 网络不通,尝试登录。" >> "$LOG_FILE"
echo "获取到IP地址: $IP" >> "$LOG_FILE"
curl "http://10.1.20.14:801/eportal/portal/login?callback=dr1003&login_method=1&user_account=%2C0%2C$ACCOUNT&user_password=$PASSWORD&wlan_user_ip=$IP&wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=4.2&terminal_type=1&lang=zh-cn&v=5343&lang=zh"
service network restart >> "$LOG_FILE" 2>&1
else
echo "$(date): 网络状态正常。" >> "$LOG_FILE"
fi
添加计划任务
crontab -e #编辑计划任务文件
在文件中另起一行添加
* * * * * /root/login.sh #每分钟触发一次 检测认证是否掉线
至此校园网自动认证就部署完成了!
脚本说明
执行逻辑:脚本每分钟执行一次,执行时会检测当前网络是否正常,如果网络断开,将自动发送get请求完成身份认证,发送请求后会自动重启以太网服务,重启时间由设备决定,正常大概在一分钟之内。
日志文件:脚本每次执行都会将当前网络状态输出至日志文件,你可以通过以下命令查看日至文件
cat /var/log/campus_net_login.log #查看日志文件