提示
该脚本仅供参考,里面的Portal服务器/用户名/密码等参数均为虚拟。
获得Portal参数
首先打开Portal页面,先进行登录后确认账号密码没有输错。然后按F12调出开发者选项,切换到Network选项卡,在Throttling(丢包)选项中选择Offline(离线),这时点击登录后下面数据流会立即出现一个红色的数据,一般为login。右键,Copy,Copy as cURL(bash)。注意一定要复制为bash。
获取到的内容如下
http://10.110.0.200/ajax_cmcc.php?action=req_auth&user=userid&pass=password&ip=10.150.xx.xx&serial=26715&bras=tel&ope=tel&vlan=0.0
内容中包含四个值user、pass、ip、serial。对应内容分别是用户名、密码、当前设备ip、一个五位随机校验码。
获取当前设备ip需要用到以下代码
ifconfig ethX|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
每个人网卡配置可能不一样,中间的ethX改成对应的网卡编号即可,如:eth0(根据wan口绑定的网卡编号)
由于需要获取一个随机数,否则多次连接后服务器会拒绝连接
所以需要用到以下命令
$RANDOM
将以上命令结合在一起
http://10.110.0.200/ajax_cmcc.php?action=req_auth&user=userid&pass=password&ip=`ifconfig ethX|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`&serial='$RANDOM'&bras=tel&ope=tel&vlan=0.0
userid、password、ethX需要根据自己实际情况替换。
最后加上curl命令获得脚本login.sh
#!/bin/sh
sleep 5
curl "http://10.110.0.200/ajax_cmcc.php?action=req_auth&user=userid&pass=password&ip=`ifconfig ethX|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`&serial='$RANDOM'&bras=tel&ope=tel&vlan=0.0"
~
同理可得logoff.sh
#!/bin/sh
sleep 5
curl "http://10.110.0.200/ajax_cmcc.php?action=req_logout&user=userid&pass=password&ip=`ifconfig ethX|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`&serial='$RANDOM'&bras=tel&ope=tel&vlan=0.0"
userid、password、ethX需要根据自己实际情况替换。
由于长时间连接后貌似会自己掉线,故添加一个test.sh
PING=`ping -c 5 180.76.76.76|grep -v grep|grep '64 bytes' |wc -l`
if [ ${PING} -ne 0 ];then
exit 0
else
/overlay/shell/logoff.sh
sleep 10
/etc/init.d/network restart
sleep 10
/overlay/shell/login.sh
fi
sleep 30
PING2=`ping -c 5 180.76.76.76|grep -v grep|grep '64 bytes' |wc -l`
if [ ${PING2} -ne 0 ];then
exit 0
else
reboot
fi
检测逻辑为ping百度dns地址判断是否能连接外网如果第一次ping失败,则先执行退出登录,随后重启路由网络服务,再重新进行登录。休眠30秒后再次ping百度dns地址,如果依旧无法ping通则重启服务器。
使用方式:
1、用ssh登录openwrt后台,找到一个合适存放脚本的目录,本人选择了overlay目录,新建了shell文件夹。
cd /overlay
mkdir shell
2、使用vi命令创建三个脚本。并授予权限。
#创建脚本
vi xx.sh
#授予权限
chmod 777 xx.sh
3、在openwrt中系统-启动项中exit 0前添加开机运行脚本
sleep 5
/overlay/shell/logoff.sh
sleep 5
/overlay/shell/login.sh
登录前先退出,以防重复登陆(会报错)
4、在系统-计划任务中添加检测(5分钟一次)
*/5 * * * * /overlay/shell/test.sh
软路由中可能重启后会消失则需要编辑/etc/crontabs/root
cd /etc/crontabs/
vi root
在root中添加
*/5 * * * * /overlay/shell/test.sh
测试发现某米路由原系统不刷机貌似无法保存开机自启任务,可以通过修改/etc/crontabs/root添加定时检测反向实现开机自动登录
更多推荐
校园网认证破解教程(某数字科技学院)
发布评论