bwifi/bwifi.sh

57 lines
1.8 KiB
Bash
Raw Normal View History

2022-10-03 05:19:38 +00:00
#!/usr/bin/env bash
username=1970111222
password=123123321
# get authorizing location from 302 response header
# use an IP address to bypass the DNS lookup
echo 'sending a http request...'
res_headers=$(curl --request GET --head --no-progress-meter http://119.29.29.29/)
echo 'response received'
if ! grep "Server: DrcomServer" <<< $res_headers ; then
echo "didn't receive a response from DrcomServer, you may be online now."
exit 1
fi
auth_host=$(sed -n -E 's/Location: (.*)/\1/p' <<< $res_headers | tr -d '[:space:]')
auth_host="${auth_host}/a70.htm"
echo auth host: $auth_host
# known auth host: 10.1.206.13
# - 10.1.206.13
# - 192.168.211.3
# for wireless, which will be redirected to this location, a "@bistu" is required,
if [ "$auth_host" == *"10.1.206.13"* ] ; then
username="${username}@bistu"
fi
# form data
title=$(curl --no-progress-meter --include \
--data-urlencode "DDDDD=$username" \
--data-urlencode "upass=$password" \
--data-urlencode "R1=0" \
--data-urlencode "R2=" \
--data-urlencode "R3=0" \
--data-urlencode "R6=0" \
--data-urlencode "para=00" \
--data-urlencode "0MKKey=123456" \
--data-urlencode "buttonClicked=" \
--data-urlencode "redirect_url=" \
--data-urlencode "err_flag=" \
--data-urlencode "username=" \
--data-urlencode "password=" \
--data-urlencode "user=" \
--data-urlencode "cmd=" \
--data-urlencode "Login=" \
$auth_host | iconv --from-code=gb2312 --to-code=utf-8 | sed -n -E 's#<title>(.*)</title>#\1#p')
echo auth result page title: $title
if [ "$title" == "认证成功页" ] ; then
echo "auth result: success"
else
echo "auth result: failed"
fi