学校和单位的网络每次使用都需要重新登陆,有时候出差在外无法实现远程控制,非常不方便,这里提供一种使用软路由自动登录网页认证的方法,使路由器检测网络状态掉线自动重登或者定时自动重登。
按照如下步骤来即可:
1.给路由器刷入openwrt
openwrt是一种针对嵌入式设备的Linux操作系统,给路由器刷入openwrt后可以实现屏蔽广告等可玩性更高的功能,在开始前需要在网上根据教程给自己的路由器刷入合适的openwrt包,刷机前注意备份,这里提供一个搜包链接,详细的步骤这里不再赘述。
OpenWrt Firmware Selectorhttps://firmware-selector.openwrt.org/
2.抓取登陆链接
2.1 准备路由器抓取
连上要实现自动登录的无线网,注意不要登录认证,就在未登录的状态,按下F12,这里以edge浏览器为例,先点击“网络”,再打开“录制”功能(一般默认已经打开),注意要勾选保留日志的功能。
2.2 抓取登录链接
输入自己的账号和密码,点击登录,成功登陆后,查看过程中抓取的内容,找到其中包含自己账号和密码的链接,如图所示,将这个链接(下文统一称为链接)复制下来。
2.3 测试链接是否可用
先退出认证账号,使网络不可用,
键盘按住win+r键 输入cmd 回车 在弹出的命令窗口中输入curl 链接 回车 如果网络恢复链接,则说明连接可用,可以进行下一步
接下来有两种思路实现自动登录功能,一是将设置自动登陆脚本,并设置为开机自动执行,这样再给路由器设置定时重启任务,路由器会在重启后自动登录网页。该方案适用于固定时间掉线的网络环境,例如有的单位是每天网上1点自动掉线,这种方案比较简单好用。参见第3部分。
或者第二种思路是每隔一段时间检测网络是否掉线,掉线了就自动执行登陆脚本,这种方案更加灵活。参见第4部分。
3.定时重启自动登录网页认证功能
3.1使用putty登录路由器(ssh)
登录名 root 密码为路由器的管理密码:
3.2 编辑登陆脚本
依次输入
mkdir autologin (创建文件夹)
cd autologin
vi autologin.sh (创建并打开文件)
按i键进入编辑模式后 输入
curl ‘链接’
按esc 后 输入:wq 按回车 保存
输入 sh autologin.sh 测试是否成功(先退出网页登陆,运行改步骤后网络恢复则说明脚本没有问题,如果出现 curl not found,需要将路由器连接外网后在openwrt中搜索安装curl,或者在ssh下依次输入 opkg update 和 opkg install curl)
3.3 设置开机自启
在路由器的启动任务中输入 sh root/autologin/autologin.sh,如下图所示,这样路由器每次重启就会自动登录。
3.4 设置路由器自动重启
在Scheduled Tasks中加入如下代码即可实现每天5:10分重启路由器,有其他的需求的搜索“corn语法”,根据说明进行修改。
10 5 * * * sleep 70 && touch /etc/banner && reboot //每天5点10分路由器自动重启
保存上述脚本后,注意在启动项里重启一下corn,或者直接重启一下路由器,在重启路由器之前注意检查路由器时区是否正确,如果时区不正确还需要手动修改时区到亚洲/上海,如下图所示:
至此路由器即实现了每天五点十分重启,并且重启后自动登录网页认证。
4.自动检测并登录功能
4.1 使用putty登录路由器,同3.1步
4.2 创建登录脚本,这里参考的是下面这个连接中的代码
openwrt校园网自动登录且断网重连_openwrt断网自动重连-CSDN博客https://blog.csdn.net/qq248606117/article/details/125144699
首先依次输入:
mkdir ping
cd ping
vi ping.sh
接着按i进入编辑模式,输入以下代码 注意修改账户名和密码
#ping 的总次数
PING_SUM=3
#ping 的间隔时间,单位秒
SLEEP_SEC=10
#连续重启网卡 REBOOT_CNT 次网络都没有恢复正常,重启软路由
#时间= (SLEEP_SEC * PING_SUM + 20) * REBOOT_CNT
REBOOT_CNT=3
LOG_PATH="/root/ping/log.txt"
cnt=0
reboot_cnt=0
while :
do
ping -c 1 -W 1 www.baidu.com > /dev/null
ret=$?
ping -c 1 -W 1 www.bilibili.com > /dev/null
ret2=$?
if [[ $ret -eq 0 || $ret2 -eq 0 ]]
then
echo -e 'network is ok\r'
exit
#cnt=0
#reboot_cnt=0
else
cnt=`expr $cnt + 1`
echo -n `date '+%Y-%m-%d %H:%M:%S'` >> $LOG_PATH
printf '-> [%d/%d] Network maybe disconnected,checking again after %d seconds!\r\n' $cnt $PING_SUM $SLEEP_SEC >> $LOG_PATH
printf '-> [%d/%d] Network maybe disconnected,checking again after %d seconds!\r\n' $cnt $PING_SUM $SLEEP_SEC
if [ $cnt == $PING_SUM ]
then
echo 'try to re curl' >> $LOG_PATH
echo 'ifup wan!!!'
sleep 5
curl 'http://10.0.1.5/drcom/login?callback=dr1003&DDDDD=账户%40unicom&upass=密&0MKKey=123456&R1=0&R2=&R3=0&R6=0¶=00&v6ip=&terminal_type=1&lang=zh-cn&jsVersion=4.1&v=3569&lang=zh'
cnt=0
#重连后,等待10秒再进行ping检测
sleep 8
#网卡重启超过指定次数还没恢复正常,重启软路由
reboot_cnt=`expr $reboot_cnt + 1`
if [ $reboot_cnt == $REBOOT_CNT ]
then
echo -n `date '+%Y-%m-%d %H:%M:%S reboot!'` >> $LOG_PATH
echo '-> Network has some problem, lets reboot' >> $LOG_PATH
echo '-> =============== reboot!'
reboot
fi
fi
fi
sleep $SLEEP_SEC
done
最后,按esc :wq保存并退出
可以输入 sh ping.sh 测试是否成功(先退出网页登陆,运行改步骤后网络恢复则说明脚本没有问题,如果出现 curl not found,需要将路由器连接外网后在openwrt中搜索安装curl,或者在ssh下依次输入 opkg update 和 opkg install curl)
4.3 添加定时任务,定时检测网络情况
与3.4类似,输入以下代码添加定时任务,只不过这次不是重启路由器,而是执行上述的ping.sh脚本:
*/15 * * * * bash /root/ping/ping.sh (每隔十五分钟检测一次)
文章来源:https://www.toymoban.com/news/detail-735070.html
至此已经实现了路由器自动登录网页认证的功能。文章来源地址https://www.toymoban.com/news/detail-735070.html
到了这里,关于实现使用软路由自动登录校园网等网页认证(零基础教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!