Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
CMCC自动登录脚本
Experiences and Insight
1484
views ·
1
replies ·
To
floor
Go
Coollove
deepin
2012-07-24 16:32
Author
OpenWrt山东移动WLAN自动登录脚本 - OpenWrt CMCC Shandong WLAN Relogin Script
#!/bin/sh
##山东移动CMCC WLAN认证的脚本.
##与随e行客户端不兼容?? 通过sniffer(eg: HTTP Analyzer/HttpWatch/Wireshark/etc.)抓包得来认证交互流程, 改写成wget/curl命令即可.
##其他不兼容省份, 其他运营商的Portal认证, 只要没有CAPTHA, 也应可依法炮制.
##Tested on WGT634U with OpenWrt Backfire 10.03.1 rc6
##firewall script for initial login
#echo "/root/relogin2.sh >/tmp/relogin2.log" >> /etc/firewall.user
##cronjob for keepalive and auto relogin (range(-) not supported on OpenWrt??)
##/etc/init.d/cron reload
## m h dom mon dow command
#*/3 * * * * killall wget;wget http://hi.baidu.com/myeyre/blog/item/bb5470cfa42c2637f9dc613b.html -O /dev/null >/tmp/keepalive.log 2>&1 &
#0 */6 * * * /root/relogin2.sh >/tmp/relogin2.log 2>&1 &
export PATH=.:$PATH
cd /root
date "+%Y-%m-%d %H:%M:%S"
#Fake UA should be better ;)
user_agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
##uci set network.wwan.username=13888888888
##uci set network.wwan.password=888888
##uci commit
bpssUSERNAME=$(uci get network.wwan.username)
bpssBUSPWD=$(uci get network.wwan.password)
#echo $bpssUSERNAME $bpssBUSPWD
#山东移动的CMCC Portal与其他省份的不同, 首次登陆地址中除了USERIP和ACNAME, 还有额外的参数(非必须??), 已登陆重新登陆会报错(??), 因此不能方便的通过重复登陆获取下线需要的参数.
#此处若不存在登陆结果页面, 则跳过登出步骤; 即使存在, 也可能是过时的(但似乎可以正常下线??), 所以此脚本不能和其他登陆方式混用(比如浏览器登陆后此脚本就不起作用).
#由于DD-WRT(preSP2 r14929 mini), OpenWrt(Backfire 10.03.1 rc6)内置的精简版wget不支持跳转, https等特性, 可能需要安装全尺寸的wget(-ssl, 或curl)
#opkg update
#opkg install wget #curl
if [ -e login_res.html ]
then
base_url=$(cat login_res.html|grep "base href"|awk -F'"' '{print $2}')
logout_url1=$(cat login_res.html|grep "LogoutServlet"|awk -F'"' '{print $2}')
logout_url2=$(cat login_res.html|grep "ATTRIBUTE_UUID"|awk -F'"' '{print $2}')
logout_url3=$(cat login_res.html|grep "ATTRIBUTE_IPADDRESS"|awk -F'"' '{print $2}')
#echo "${base_url}${logout_url1}${logout_url2}${logout_url3}1"
#logout_res
wget "${base_url}${logout_url1}${logout_url2}${logout_url3}1" -O logout_res.html -U "${user_agent}" --no-check-certificate
cat logout_res.html
fi
#下班后不再登陆
if [ `date "+%H"` -gt 18 -o -e nologin ]
then
echo "Off duty. No login until 8:00 next weekday."
exit
fi
#login_pre
wget "http://www.google.com/" -O login_pre.html -U "${user_agent}"
action_url=$(cat login_pre.html|grep "form action"|awk -F'"' '{print $2}'|head -1)
wlanuserip_1=$(cat login_pre.html|grep "wlanuserip_1"|awk -F'"' '{print $8}'|head -1)
wlanacname_1=$(cat login_pre.html|grep "wlanacname_1"|awk -F'"' '{print $8}'|head -1)
wlanparameter_1=$(cat login_pre.html|grep "wlanparameter_1"|awk -F'"' '{print $8}'|head -1)
#echo ${action_url}
#echo ${wlanuserip_1} ${wlanacname_1} ${wlanparameter_1}
##login_res, post
#wget "${action_url}" -O login_res.html -U "${user_agent}" --no-check-certificate \
#--post-data="bpssUSERNAME=${bpssUSERNAME}&bpssBUSPWD=${bpssBUSPWD}&wlanuserip_1=${wlanuserip_1}&wlanacname_1=${wlanacname_1}&wlanparameter_1=${wlanparameter_1}&wlanuserfirsturl_1=http://www.google.com/&ssid_1=&userAgent_1=${user_agent}&usertype_1=pc&gotopage_1=/cmccpc.jsp&css_1=/css/cmccpc_include.css&sucesspage_1=/cmccpc_index.jsp&cookieage=1&loginmode=static&wlanacssid=&issaveinfo="
##get is fine
wget "${action_url}?bpssUSERNAME=${bpssUSERNAME}&bpssBUSPWD=${bpssBUSPWD}&wlanuserip_1=${wlanuserip_1}&wlanacname_1=${wlanacname_1}&wlanparameter_1=${wlanparameter_1}&wlanuserfirsturl_1=http://www.google.com/&ssid_1=&userAgent_1=${user_agent}&usertype_1=pc&gotopage_1=/cmccpc.jsp&css_1=/css/cmccpc_include.css&sucesspage_1=/cmccpc_index.jsp&cookieage=1&loginmode=static&wlanacssid=&issaveinfo=" -O login_res.html -U "${user_agent}" --no-check-certificate
grep "loginsuccess" login_res.html
date "+%Y-%m-%d %H:%M:%S"
Copy the Code
Reply
Like 0
Favorite
View the author
All Replies
tuhaihe
deepin
2012-07-24 18:35
#1
Reply
Like 0
View the author
Please
sign
in first
New Thread
Rankings
7 days
30 days
90 days
1
xclimbing
117 posts
2
聪明蛋
59 posts
3
neko
58 posts
4
柠萌~
54 posts
5
燕子大王来也!
53 posts
6
okk~
53 posts
Popular Events
More