Einführung
Seit kurzer Zeit muss man sich, damit man seinen Hostnamen nicht verliert, jeden Monat im Account von DynDNS.org einloggen. Mit einem einfachen Skript und einem Crontab Eintrag lässt sich das automatisieren.
Automatisch einloggen
Folgendes Skript automatisiert das Login im Account von DynDNS.org. Man muss nur noch den Usernamen und das Passwort eintragen.
#!/usr/bin/env bash
#
# dyndnslogin - Automate login to prevent account expiration
#
########################################################################
# DynDNS Settings (default-value, overwrite with $1 and $2)
# If you have special chars in your password, you need to urlencode:
# python -c "from urllib.parse import quote;
# print(quote('your password', safe=''))"
DEFAULT_USERNAME="username"
DEFAULT_PASSWORD="password"
# Import settings from /etc/ddclient.conf if available
DDCONF="/etc/ddclient.conf"
if [ -r "$DDCONF" ] && grep -q "^server=members.dyndns.org" "$DDCONF"
then
DEFAULT_USERNAME="`awk -F= '/^login=/{ print $2 }' $DDCONF`"
DEFAULT_PASSWORD="`awk -F= '/^password=/{ print $2 }' $DDCONF`"
fi
USERNAME=${1:-$DEFAULT_USERNAME}
PASSWORD=${2:-$DEFAULT_PASSWORD}
PROGNAME=dyndnslogin
COOKIE=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_cookie_XXXXX`
OUTPUT=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_output_XXXXX`
USERAGENT="Mozilla/5.0"
MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \
| awk -F\' '/multiform/{ print $6 }'`
curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
--data-urlencode "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
https://account.dyn.com/
if grep -i -E "(Welcome|Hi).*$USERNAME" $OUTPUT > /dev/null 2>&1
then
echo Login successful
else
echo Login failed
FAILED="true"
fi
rm $COOKIE
rm $OUTPUT
if [ "$FAILED" = "true" ]
then
exit 1
fi
Nach dem Ausführen erhält man die Rückmeldung, ob das Login funktioniert hat oder nicht.
Automatisieren
Mit crontab -e
bearbeitet man die Crontab und fügt dort folgende Zeile ein:
5 23 * * 0 /usr/local/bin/dyndnslogin
Somit wird an jedem Sonntag um 23:05h ein Login im DynDNS.org Account gemacht.
Links und weitere Informationen
- DynDNS Account Login: https://account.dyn.com/
- DnyDNS Service Level Agreement: http://www.dyndns.com/about/legal/sla.html