在路由器上写CMCC自动登录脚本2 (shell篇)

Xiaoxia 2012-05-26 03:52

继上一篇在路由器上写CMCC自动登录脚本介绍用python脚本实现cmcc自动登录之后,用起来不是很爽!另外发现openwrt也不支持perl脚本,所以想到用shell脚本重新写一遍。方便在没有python环境下,能够直接使用。

今晚琢磨了两个小时,终于成功写出busybox能够支持的登录脚本了。因为登录过程中多次跳转,需要记录JSP的SessionID,所以需要下载安装完整版的wget,才能使用到wget的cookie功能!(busybox自带的wget不支持cookie功能)

上脚本代码:

#!/bin/sh
echo $(date) > /tmp/cmcc_date
wget 'http://www.google.com.hk/' -O /tmp/cmcc_touch --save-cookies /tmp/cmcc_cookies --keep-session-cookies

username="***********"
password="******"
wlanuserip=$(cat /tmp/cmcc_touch |grep 'NAME="wlanuserip"' |awk -F'"' '{print $6}')
wlanacname=$(cat /tmp/cmcc_touch |grep 'NAME="wlanacname"' |awk -F'"' '{print $6}')
wlanacip=$(cat /tmp/cmcc_touch |grep 'NAME="wlanacip"' |awk -F'"' '{print $6}')

if [[ !$wlanacname ]] 
then
    exit 0
fi

prelogin_url='http://221.179.9.18:8080/bpss/index.jsp'
wget "${prelogin_url}" --post-data "wlanuserip=${wlanuserip}&wlanacname=${wlanacname}&wlanacip=${wlanacip}" -O /tmp/cmcc_prelogin --load-cookies /tmp/cmcc_cookies --keep-session-cookies

login_url=$(cat /tmp/cmcc_touch |grep 'name="loginform"' |awk -F'"' '{print $4}')
wget "${login_url}" --post-data "bpssUSERNAME=${username}&bpssBUSPWD=${password}&Submit=%B5%C7%C2%BC&bpssLoginType=1" -O /tmp/cmcc_login --load-cookies /tmp/cmcc_cookies --keep-session-cookies

因为本人比较懒,有些网址直接hardcode了,所以你可能需要根据当地的情况而改变链接地址或者wget的请求方式。以上代码可以在广东省范围内使用:)

[返回] [原文链接]