实现使用软路由自动登录校园网等网页认证(零基础教程) |
您所在的位置:网站首页 › 如何wlan自动登录 › 实现使用软路由自动登录校园网等网页认证(零基础教程) |
学校和单位的网络每次使用都需要重新登陆,有时候出差在外无法实现远程控制,非常不方便,这里提供一种使用软路由自动登录网页认证的方法,使路由器检测网络状态掉线自动重登或者定时自动重登。 按照如下步骤来即可: 1.给路由器刷入openwrtopenwrt是一种针对嵌入式设备的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 (每隔十五分钟检测一次) 至此已经实现了路由器自动登录网页认证的功能。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |