实现路由器自动登陆校园网(edu)

准备工做:php

 (1)一个能够刷openwrt固件的路由器,如大多人使用的crazybox版本的路由.ajax

 (2)一个可用的edu帐号.chrome

 (3)一个浏览器(firfox,chrome)shell

下面开始:浏览器

     一:刷openwrt固件,以下:
服务器

      )去openwrt官网查看 你路由型号的固件版本,而后下载。工具

      )刷固件到路由器,相应的crazybox都有一个breed控制台(若是不是crazybox,你就得给路由器刷一个breed或者不死uboot).post

      )安装wget,路由器自带的wget是简版的字体

    至此路由器准备成功优化

    二:分析认证服务器须要的用户信息:

      表面须要的是用户名和密码,可是其实不止这些,咱们能够用浏览器来看看,到底发送了什么信息:

         按F12调出开发者工具,而后点击登陆

至此咱们能够看到请求头,请求url,以及发送的数据,咱们点击编辑和重发能够看到以下图片,咱们要的就是请求主体里面的东西:

相似以下的格式(这里很重要):

请求URL:http://172.16.245.50/include/auth_action.php

请求主体:action=login&username=123456789@yd&password=123456&ac_id=2&user_ip=10.26.16.7&nas_ip=&user_mac=&save_me=1&ajax=1

我屡次拿wget工具模拟登陆时发现,web认证只须要这个  请求主体  以及  请求url(这是在路由器里面时)

可是在我本身的电脑上(debian 9.5)须要加请求头,具体的缘由不明,也没有去研究。这里为了路由器就只加 请求主体

 

其中有一点对写shell脚本是一个重点:user_ip=10.26.16.7,这个须要本身写脚本获取当前路由器链接edu获取的ip

 

 如今一切准备就绪,可用电脑的wget试一下,格式以下(红色部分字体分别填写本身的帐号,密码,本身电脑从edu获取的ip地址):

wget  --post-data="action=login&username=123456789@yd&password=123456&ac_id=2&user_ip=10.26.17.14&nas_ip=&user_mac=&save_me=1&ajax=1" http://172.16.245.50/include/auth_action.php

固然若是你须要加上请求头,可自行查看wget的用法,以下面部分http的用法:

 

 编写脚本让路由器启动时自动登陆(固然请求url,帐号,密码本身改):

 

#!/bin/sh
ip=`ifconfig | grep 'inet addr'| grep -vE '(192|127)' | awk '{print $2}' | awk -F ':' '{print $ 2}'`
sleep 10
wget --post-data="action=login&username=123456789@yd&password=123456&ac_id=2&user_ip=$ip&nas_ip=&user_mac=&save_me=1&ajax=1" http://172.16.245.50/include/auth_action.php
rm -f /root/auth_action.php

 

更改脚本的权限:

#脚本名因人而异
chmod 777 login.sh

最后添加,为启动后本身运行:

打开 /etc/rc.local文件,加入脚本运行命令: sh /root/login.sh

固然脚本路径因人而异

ps:至此整个自动登陆完成,后续能够将脚本更加优化,使其可以断网自连

相关文章
相关标签/搜索