Skip to content

Instantly share code, notes, and snippets.

@zer0future
Forked from dks77/99-login-german-fon
Created November 4, 2017 00:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zer0future/03e37c4c49a85e58e9a87a90b63f3bc4 to your computer and use it in GitHub Desktop.
Save zer0future/03e37c4c49a85e58e9a87a90b63f3bc4 to your computer and use it in GitHub Desktop.
Telekom_FON Hotspot: auto-login bash script wget germany wispr client openwrt
#!/bin/sh
# place this file at: /etc/hotplug.d/iface/99-login-telekom_fon
# based on source: https://gist.github.com/cusspvz/3ab1ea9110f4ef87f0d2e1cd134aca67
#
# loginscript for german telekom_FON hotspot (NOT the general Telekom Hotspot)
# technic: uses HTTP POST formular; extract URLs from WIPSr
#
# Preparations
# for openwrt please install: "curl" "ca-certificates"
#
#
# In my case, this script was called every 5minutes (no cron job needed)
#
# Configurations
FON_USERNAME="username%40t-online.de"
# FON_USERNAME="498555555555%40t-mobile.de"
# must be url_encoded (e.g. @ = %40)
FON_PASSWORD="123456"
#must be url_encoded
FON_DELAY_UP=3
COOKIE_JAR_PATH=/tmp/nos-fon-cookie-jar.$INTERFACE
. /lib/functions.sh
clean () {
[ -f $COOKIE_JAR_PATH ] && rm -f $COOKIE_JAR_PATH
}
logger -t FonLogin "Starting on $INTERFACE:$DEVICE -> $ACTION"
attempt () {
local INDICATOR="<LoginURL>"
local POST_URL=""
local TARGET="http://google.com"
logger -t FonLogin "Trying to fetch a website"
DATA="$(curl --insecure --interface $DEVICE --location --cookie-jar $COOKIE_JAR_PATH $TARGET)"
logger -t FonLogin "Trying to get post url"
POST_URL="$(echo "$DATA" | grep $INDICATOR | cut -d '<' -f 2 | cut -d '>' -f 2 | sed -r 's/\&amp;/\&/g')"
if [ -n "$POST_URL" ]; then
logger -t FonLogin "Post URL found, trying to login"
DATA=`curl \
--insecure \
--interface $DEVICE \
--location \
--location-trusted \
--cookie-jar $COOKIE_JAR_PATH \
--header 'cache-control: no-cache' \
--header 'content-type: application/x-www-form-urlencoded' \
--data "UserName=${FON_USERNAME}&FNAME=0&button=Login&OriginatingServer=http%3A%2F%2Fgoogle.de&Password=${FON_PASSWORD}" \
"$POST_URL"`
logger -t FonLogin "a Trying to get logoff url"
LOGOFF_URL="$(echo "$DATA" | grep "<LogoffURL>" | cut -d '<' -f 2 | cut -d '>' -f 2 | sed -r 's/\&amp;/\&/g')"
echo "$LOGOFF_URL"
if [ -n "$LOGOFF_URL" ]
then
logger -t FonLogin "LogOff URL found; Login was successful"
logger -t FonLogin "...Login successfull"
else
logger -t FonLogin "LogOff URL -NOT- found"
logger -t FonLogin "...Login failed"
fi
else
logger -t FonLogin "Login not needed oder not possible"
fi
clean
}
case "$ACTION" in
ifup)
logger -t FonLogin "Waiting $FON_DELAY_UP seconds before attempt"
sleep $FON_DELAY_UP;
logger -t FonLogin "Attempting to login at FON"
attempt
;;
update)
logger -t FonLogin "Attempting to update login at FON"
attempt
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment