校园网登录认证脚本
详细内容
#!/bin/bash
set -e
action=$1
#确定脚本所在目录
workdir=$(cd `dirname $0`; pwd)
#登录
login() {
read -p "UserName:" login_username
read -s -p "PassWord:" login_password
echo
read -n1 -p "Set up automatic login?[y/n]" auto_land
echo
if [ $auto_land == "y" ]
then
auto_land=true
else
auto_land=false
fi
#构建Query_String_Parameters
herf=`curl -sl http://1.1.1.1/`
herf=${herf#*\?}
herf=${herf%\'*}
Query_String_Parameters="method=login¶m=true&$herf"
#构建登录url
login_url="http://202.115.160.114/eportal/userV2.do?$Query_String_Parameters"
#填充表单
Form_Data="is_auto_land=$auto_land&usernameHidden=$login_username&username_tip=Username&username=$login_username&strTypeAu=&uuidQrCode=&authorMode=&pwd_tip=Password&pwd=$login_password"
#curl模拟登录
curl -v -D $workdir/Response_Header -d $Form_Data $login_url
}
#下线
logout(){
userIndex=`cat $workdir/Response_Header | grep Location | awk 'BEGIN{FS="&"}{print $2}' | awk 'BEGIN{FS="="}{print $2}'`
logout_url="http://202.115.160.114/eportal/userV2.do?method=logout&userIndex=$userIndex"
curl -I $logout_url
}
case $action in
login)
login;;
logout)
logout;;
*)
echo "Parameter Error! Input parameter [login/logout]."
esac
用法
在执行脚本时,脚本文件后接上login(登录)、logout(下线)参数即可。登录时需要输入认证用户和密码,是否使用自动等功能。