前言
书接上文关于门户跳转登录网络的路由器的配置,宿舍的网络接入方式为网页门户登录
。如果是普通专业的学生,不懂网络原理
的话,很有可能会变成每个人都要交网费,一个宿舍产生120元/月
甚至更多的上网费用。
吃相未免太难看了吧
于是便有了此文,整个宿舍只需要交一份网络费用就行了,用一个路由器,包括wifi,全宿舍都可以共享网络。
实际效果图
先放实际效果图
划线的是我们的wifi,其中玩原神玩的
和原神启动
分别是5GHz
和2.4GHz
频段的,接上不断电电源的wifi,
晚上也可以共享一个账号使用
网络拓扑
分析
其中192.168.1.1
的路由器用于存放拨号脚本,且接上ups不断电电源
,承担拨号
的作用,这样这个路由器就转换成了类似光猫的设备,下面的设备就当作正常设备使用就行了
门户登陆爬虫
这是重点,因为本篇文章就是建立在能够自动登陆门户的基础上实现的
接下来分析门户
流程如下
具体分析
打开抓包工具
连接wifi进入门户
没有加密还是很简单的,具体实现如下
#!/bin/sh
function get_json(){
echo "${1//\"/}" | sed "s/.*$2:\([^,}]*\).*/\1/"
}
function deal_json(){
cmd='curl -s -X GET http://172.30.21.100/api/account/status --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"'
api_result=`eval ${cmd}`
value=$(get_json "${api_result}" "msg")
echo $value
}
function run_cmd(){
cmd_result=`eval $1`
echo $cmd_result
}
result=$(deal_json)
# echo $result
if [ "$result" != "在线" ]
then
# echo 1
cmd='curl -s -X POST http://172.30.21.100/api/account/login --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" -d "username=xxxxx&password=xxxxx&nasId=59&userIpv4=&userMac=&captcha=&captchaId=&switchip="'
value=$(run_cmd "${cmd}")
login_result=$(get_json "${value}" "authCode")
if [ "$login_result" == "ok:radius" ]
then
echo "登陆成功"
fi
fi
放到路由器里,改一下run_cmd()函数中的cmd命令字符串,把账号和密码改成自己的,用crontab就完事了
还有其他python实现请详见我的github