中国计量大学路由器自动登录脚本 以联通为例: 首先抓取上网登录页的信息,浏览器按F12,然后选择网络和保留日志,开始登陆。
可以发现,有一个地方是登录的脚本,还是明文传递的
格式为:
1 http://10.4.66.2:801/eportal/portal/login?callback=dr1003&login_method=1&user_account=%2C0%2C【学号】&user_password=【密码】&wlan_user_ip=【ip】&wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=4.2.1&terminal_type=1&lang=zh-cn&v=4297&lang=zh
所以可以根据此构造一个登录脚本。和几年前的基本没啥变化,但是学长用的是curl,我这个路由器没有,所以用wget写一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #!/bin/sh username=【学号】; password=【密码】; local_ip=$(ip addr show | grep "inet " | grep -v "127.0.0.1" | grep -v "192.168.123.1" | awk '{print $2}' | cut -d/ -f1 | head -n 1)echo "使用ip=${local_ip} 进行登录测试!" url="http://10.4.66.2:801/eportal/portal/login?callback=dr1003&login_method=1&user_account=%2C0%2C${username} %40unicom&user_password=${password} &wlan_user_ip=${local_ip} &wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=4.2.1&terminal_type=1&lang=zh-cn&v=7696&lang=zh" check_internet () { ping -c 3 -W 5 www.baidu.com >/dev/null 2>&1 return $? }if check_internet; then echo "网络连接正常" else echo "未连接,尝试登录..." login_result=$(wget --no-check-certificate -qO- "$url " ) if echo "$login_result " | grep -q "认证成功" ; then echo "登录成功!" else echo "登录失败,返回信息:$login_result " fi fi
脚本中有几个要点,比如说padavan的路由器默认地址是192.168.123.1,所以在获取外网IP的时候要给屏蔽掉,如果换过内网ip记得更新一下那里的值。 另外传参的时候会把符号进行处理,如果密码中有诸如!@#..之类的特殊符号,需要转义,所以我建议自己先抓一下登录的链接,然后只更改IP就可以了。
写好之后记得添加一下权限,否则crontab权限不够:
1 chmod +x /etc/storage/cjlu.sh
然后添加crontab守护
1 */5 7-23 * * * / etc/storage/cjlu.sh >> /tmp/ cjlu.log 2 >&1
这里写了一个log用于调试,一次跑通的友友可以把后面删掉,参考学长的crontab设置。
参考链接: