在路由器上写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的请求方式。以上代码可以在广东省范围内使用