eisbaerin
IPPF-Urgestein
- Mitglied seit
- 29 Sep 2009
- Beiträge
- 11,377
- Punkte für Reaktionen
- 1,064
- Punkte
- 113
Hättest du da bitte auch noch einen Link? Danke!als Binary hier im Forum.
Hättest du da bitte auch noch einen Link? Danke!als Binary hier im Forum.
Es muss nicht zwingend Freetz sein, aber es ist einfacher, als alles Benötigte von Hand auf die Box zu bringen.aber die FritzBox muss zwingend Freetz installiert haben sonst geht das nicht..?
Na, da lande ich aber auch nur auf einer "Anmeldeseite".
#!/bin/sh
#DEBUG=1
LOGIN="***"
PASSWORD="***"
COOKIES="/tmp/.dynsdns.cookies.txt"
AL="en-gb"
UA="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"
LOGINURL="https://account.dyn.com/entrance/"
POSTURL="$LOGINURL"
CHKURL="https://account.dyn.com/"
[[ $DEBUG ]] && DST="-" || DST="/dev/null"
# random sleep time 1-900
DELAY=$(($(hexdump -n 2 -e '"%u"' /dev/urandom | tr -d '-' ) % 900 + 1))
echo >&2 "Wait '$DELAY' sec..."
sleep $DELAY
[[ -w "$( dirname "$COOKIES" )" ]] || { echo >&2 "FATAL: Cannot write to directory '$( dirname "$COOKIES" )'" ; exit 1; }
# Ensure no broken session caching...
if [[ -s "$COOKIES" ]]; then
[[ -w "$COOKIES" ]] || { echo >&2 "FATAL: Cannot write to file '$COOKIES'" ; exit 1 ; }
rm -f "$COOKIES" >/dev/null 2>&1
fi
[[ $DEBUG ]] && echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..."
curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A \"$UA\" --url "$LOGINURL"
[[ $DEBUG ]] && echo >&2 "DEBUG: Fetching UID..."
VALUE="$( curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep "multiform" | cut -d"'" -f 6 | head -n 1 )"
[[ $DEBUG ]] && echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..."
curl -b $COOKIES -c $COOKIES -d "username=$LOGIN" -d "password=$PASSWORD" -d "iov_id" -d "multiform=$VALUE" -e "$LOGINURL" -kso "$DST" -A \"$UA\" --url "$POSTURL"
[[ $DEBUG ]] && echo >&2 "DEBUG: Response received - verifying result..."
curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A \"$UA\" -H "Accept-Language: $AL" --url "$CHKURL" | \
grep -qE "<span>(Welcome|Hi) <b>$LOGIN</b></span>" \
&& { echo "Login successful" ; /sbin/write_log "DynDNS - Web-Login successful" 4 ; } \
|| { echo >&2 "Login failed" ; /sbin/write_log "DynDNS - Web-Login failed" 2;exit 1 ; }
exit 0
root@net1-FB7570:/var/tmp/flash# sh -x autoupdate_dyndns.sh
+ LOGIN=<dyndns-account>
+ PASSWORD=<dyndns-passwort>
+ EMAIL=<Email-Empfänger Push-Service>
+ COOKIES=/tmp/.dynsdns.cookies.txt
+ AL=en-gb
+ UA=Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
+ LOGINURL=https://account.dyn.com/entrance/
+ POSTURL=https://account.dyn.com/entrance/
+ CHKURL=https://account.dyn.com/
+ [[ ]]
+ DST=/dev/null
+ awk BEGIN {srand(); print int (rand() * 3000) }
+ DELAY=2523
+ echo Wait '2523' sec...
Wait '2523' sec...
+ dirname /tmp/.dynsdns.cookies.txt
+ [[ -w /tmp ]]
+ [[ -s /tmp/.dynsdns.cookies.txt ]]
+ [[ -w /tmp/.dynsdns.cookies.txt ]]
+ rm -f /tmp/.dynsdns.cookies.txt
+ [[ ]]
+ curl -b /tmp/.dynsdns.cookies.txt -c /tmp/.dynsdns.cookies.txt -Ikso /dev/null -A "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" --url https://account.dyn.com/entrance/
HTTP/1.1 200 OK
Date: Sun, 01 Sep 2013 08:59:20 GMT
Server: Apache
Cache-control: no-cache
Content-Type: text/html; charset=ISO-8859-1
Expires: Sun, 01 Sep 2013 08:59:20 GMT
Set-Cookie: id=c8VaNdeaRVT7z+u5JAWOXCg7Vdk; domain=account.dyn.com; path=/; expires=Sat, 30-Nov-2013 08:59:20 GMT
Accept-Ranges: none
Vary: Accept-Encoding
+ [[ ]]
+ curl -b /tmp/.dynsdns.cookies.txt -c /tmp/.dynsdns.cookies.txt -kso - -A "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" --url https://account.dyn.com/entrance/
+ grep -m 1 multiform
+ cut -d' -f 6
+ VALUE=0757F751B25321F3217C1CF7BBB0450D13
+ [[ ]]
+ curl -b /tmp/.dynsdns.cookies.txt -c /tmp/.dynsdns.cookies.txt -d username=<dyndns-account> -d password=<dyndns-passwort> -d iov_id -d multiform=0757F751B25321F3217C1CF7BBB0450D13 -e https://account.dyn.com/entrance/ -kso /dev/null -A "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" --url https://account.dyn.com/entrance/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="https://account.dyn.com/">here</A>.<P>
</BODY></HTML>
+ [[ ]]
+ curl -b /tmp/.dynsdns.cookies.txt -c /tmp/.dynsdns.cookies.txt -e https://account.dyn.com/entrance/ -kso - -A "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" -H Accept-Language: en-gb --url https://account.dyn.com/
+ grep -qE <span>(Welcome|Hi) <b><dyndns-account></b></span>
(23) Failed writing body
+ echo Login successful
Login successful
+ exit 0
|| { echo >&2 "Login failed" ; mail send -s "Dyndns web login failed !" -f "[email protected]" -t \"$EMAIL\" ; exit 1 ; }
mail send -s "Dyndns web login failed !" -f "[email protected]" -t \"$EMAIL\"
Der Backslash dient als Maskierungszeichen.Was ich noch nicht nachvollziehen kann ist der Backslash beim Parameter -t:
Code:mail send -s "Dyndns web login failed !" -f "[email protected]" -t \"$EMAIL\"
Der Backslash führt dazu, dass die Anführungszeichen Teil des Parameters von -t sind, im Gegensatz zu den Anführungszeichen beim Parameter -f, die nicht Bestandteil des Parameters und in diesem Fall unnötig sind.Was ich noch nicht nachvollziehen kann ist der Backslash beim Parameter -t:
Code:mail send -s "Dyndns web login failed !" -f "[email protected]" -t \"$EMAIL\"
Das lässt sich mit einem einfachen Aufruf an der Kommandozeile überprüfen.Kann der Mail-Versand unter Verwendung des AVM Push-Service funktionieren, wenn beim Parameter -t (=to) eine andere Email-Adresse eingetragen ist als in der Konfiguration des Push-Service?