[Script] DynDns Pflicht Login

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [Script] DynDns Pflicht Login

    Hallo Qnap-Gemeinde.
    Seit einiger Zeit ist es bei DynDNS mit einem "Free-Account" wohl erforderlich, sich einmal im Monat auf der Webseite händisch anzumelden. Nun, in einem anderen Forum (genauer gesagt im IP-Phone-Forum) bin ich über ein Script gestolpert, mit dem dies auf einer mit Freetz modifizierten Fritz!Box automatisiert werden kann (auf meiner 6360_Cable leider nicht möglich).
    Nun, da auf unseren Qnap's ja ebenfalls Linux läuft, denke ich, dass dies auch auf diesen "Boxen" möglich ist, wenn das Script dementsprechend angepasst wird (zum Beispiel der Teil mit dem E-Mail-Versand). Mir fehlen für sowas aber leider die notwendigen "Linux-Skills".
    Viel Spaß damit.

    Quellen:
    ip-phone-forum.de/showthread.php?t=260356
    blog.stuart.shelton.me/archives/1024
  • Re: [Script] DynDns Pflicht Login

    ich antworte hier mal, da ich gestern auch gekappt wurde und mein Hostname nun weg war, ich hatte zufällig auch gestern ein Mail bekommen in der mir dies geschrieben wurde.
    Jetzt bin ich ebenfalls am suchen habe aber auch eine super Lösung gefunden, nur weiß ich weder wie man diesen crontab erstellt und wo das script hin muss.
    Bin da absoluter Laie.

    Ich hoffe mir kann nun jemand als Anfänger behilflich sein wo und wie ich dieses einbaue..!

    Folgendes Skript automatisiert das Login im Account von DynDNS.org. Man muss nur noch den Usernamen und das Passwort eintragen.

    Quellcode

    1. #!/usr/bin/bash
    2. ########################################################################
    3. #
    4. # dyndnslogin
    5. # Automate login to prevent account expiration
    6. #
    7. ########################################################################
    8. ########################################################################
    9. # DynDNS Settings
    10. USERNAME="username"
    11. PASSWORD="passwort"
    12. ########################################################################
    13. # Variabeln
    14. PROGNAME=dyndnslogin
    15. COOKIE=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_cookie_XXXXX`
    16. OUTPUT=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_output_XXXXX`
    17. USERAGENT="Mozilla/5.0"
    18. ########################################################################
    19. # Main
    20. MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \
    21. | awk -F\' '/multiform/{ print $6 }'`
    22. curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
    23. --data "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
    24. https://account.dyn.com/
    25. if grep -E "(Welcome|Hi).*$USERNAME" $OUTPUT > /dev/null 2>&1
    26. then
    27. echo Login successful
    28. else
    29. echo Login failed
    30. FAILED="true"
    31. fi
    32. rm $COOKIE
    33. rm $OUTPUT
    34. if [ "$FAILED" = "true" ]
    35. then
    36. exit 1
    37. fi
    38. # EOF
    Alles anzeigen


    Nach dem Ausführen erhält man die Rückmeldung, ob das Login funktioniert hat oder nicht.

    Mit crontab -e bearbeitet man die Crontab und fügt dort folgende Zeile ein:

    Quellcode

    1. 5 23 * * 0 /usr/local/bin/dyndnslogin

    Somit wird an jedem Sonntag um 23:05h ein Login im DynDNS.org Account gemacht.
    Ich habe dies nicht selber erstellt falls Fragen kommen, ich habe dies mir selber nur gespeichert.
    Werde aber bei Bedarf die Seite suchen und den Link hier einstellen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von moonsorrox ()

  • Re: [Script] DynDns Pflicht Login

    "moonsorrox" schrieb:


    Jetzt bin ich ebenfalls am suchen habe aber auch eine super Lösung gefunden, nur weiß ich weder wie man diesen crontab erstellt und wo das script hin muss.

    Vorausgesetzt das Script läuft auf der QNAP, sind das die kleinsten Probleme:
    1. Script kannst du mehr oder weniger ablegen wo du willst. Ich hab mir einen Freigabeordner erstellt indem ich diverse Scripte liegen habe.
    2. Crontab bearbeiten: forum.qnapclub.de/viewtopic.php?f=80&t=1033

    EDIT
    So einfach ist's dann wohl doch nicht. Das Script funktioniert nicht und es liegt nicht nur an der ersten Zeile, die bereits falsch ist ;)
    Aber vielleicht lässt es sich ja als Grundlage verwenden, wenn man es entsprechend anpasst.
  • Re: [Script] DynDns Pflicht Login

    Ich habe das Script aus dem LINK (von moonsorrox) grade mal probiert. Ich denke, der Busybox unserer QNAP fehlen dazu ein par Funktionen. Jedenfalls bekomme ich folgende Meldung beim Ausführen via Console:

    Quellcode

    1. -sh: dynlogin.sh: command not found
  • Re: [Script] DynDns Pflicht Login

    "SaschaBr" schrieb:

    Jedenfalls bekomme ich folgende Meldung beim Ausführen via Console:

    Weil die Shebang-Zeile bereits falsch ist. Diese muss lauten:

    Shell-Script

    1. #!/bin/sh


    Dann kommt der nächste Fehler bei mktemp, kann aber korrigiert werden:

    Quellcode

    1. COOKIE=`mktemp /tmp/${PROGNAME}_cookie_XXXXXX`
    2. OUTPUT=`mktemp /tmp/${PROGNAME}_output_XXXXXX`


    Und nun komme ich nicht mehr weiter, da keine Fehlermeldungen mehr kommen, der Login aber immer scheitert. Zumindest lt. Rückgabewert des Scripts, bei DynDNS kann man glaub nirgends Datum und Zeit des letzten Logins sehen.
  • Re: [Script] DynDns Pflicht Login

    Moin,

    also leider schein das Skript, besser gesagt cURL ein Problem mit den cookies zu haben.

    folgende Fehlerseite wird abgespeichert.
    Dateien
    • cookie.jpg

      (13,98 kB, 36 mal heruntergeladen, zuletzt: )
  • Re: [Script] DynDns Pflicht Login

    "frosch2" schrieb:

    Ich habe einen dyndns.org Account seit fast 10 Jahren und keine dieser Mails erhalten.


    ich auch, aber weg war er seit einigen Tagen.. Ich hatte auch nichts gemacht weil die Mails sicher im Spam verschwunden sind... Bei meinen Eltern das selbe ich komme aus der Ferne nicht mehr auf die Fritzbox...

    Habe jetzt im Internet etwas gefunden wo man dies auf dem eigenen Webspace machen kann ein php Script und es sollte gehen aber hatte noch keine Zeit es zu testen/probieren.

    Ja klar richtige Entscheidung, wer nicht will... weg :thumbsup: Recht hat er
  • Re: [Script] DynDns Pflicht Login

    Also bei mir war folgendes Script erfolgreich:

    Shell-Script

    1. #!/bin/sh
    2. #DEBUG=1
    3. LOGIN="***"
    4. PASSWORD="***"
    5. COOKIES="/tmp/.dynsdns.cookies.txt"
    6. AL="en-gb"
    7. UA="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"
    8. LOGINURL="https://account.dyn.com/entrance/"
    9. POSTURL="$LOGINURL"
    10. CHKURL="https://account.dyn.com/"
    11. [[ $DEBUG ]] && DST="-" || DST="/dev/null"
    12. # random sleep time 1-3000
    13. #DELAY=$(($(hexdump -n 2 -e '"%u"' /dev/urandom | tr -d '-' ) % 3000 + 1))
    14. # If the method above didn't work, try the following method witk awk-srand.
    15. # DELAY=$(awk 'BEGIN {srand(); print int (rand() * 3000) }')
    16. #echo >&2 "Wait '$DELAY' sec..."
    17. #sleep $DELAY
    18. [[ -w "$( dirname "$COOKIES" )" ]] || { echo >&2 "FATAL: Cannot write to directory '$( dirname "$COOKIES" )'" ; exit 1; }
    19. # Ensure no broken session caching...
    20. if [[ -s "$COOKIES" ]]; then
    21. [[ -w "$COOKIES" ]] || { echo >&2 "FATAL: Cannot write to file '$COOKIES'" ; exit 1 ; }
    22. rm -f "$COOKIES" >/dev/null 2>&1
    23. fi
    24. [[ $DEBUG ]] && echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..."
    25. curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A \"$UA\" --url "$LOGINURL"
    26. [[ $DEBUG ]] && echo >&2 "DEBUG: Fetching UID..."
    27. VALUE="$( curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep "multiform" | cut -d"'" -f 6 | head -n 1 )"
    28. #VALUE="$(curl -b $COOKIES -c $COOKIES -kso - -A \"$UA\" --url "$LOGINURL" | \
    29. # grep -m 1 "multiform" | \
    30. # cut -d\' -f 6)"
    31. [[ $DEBUG ]] && echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..."
    32. 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"
    33. [[ $DEBUG ]] && echo >&2 "DEBUG: Response received - verifying result..."
    34. curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A \"$UA\" -H "Accept-Language: $AL" --url "$CHKURL" | \
    35. grep -qE "<span>(Welcome|Hi)&nbsp;<b>$LOGIN</b>" \
    36. && echo "Login successful" \
    37. || { echo >&2 "Login failed" ; /sbin/write_log "DynDNS failed to login" 2;exit 1 ; }
    38. exit 0
    Alles anzeigen

    Quellcode

    1. [~] # ./dyntest.sh
    2. DEBUG: Fetching initial headers to pre-load cookies...
    3. HTTP/1.1 200 OK
    4. Date: Mon, 08 Jul 2013 23:01:10 GMT
    5. Server: Apache
    6. Cache-control: no-cache
    7. Content-Type: text/html; charset=ISO-8859-1
    8. Expires: Mon, 08 Jul 2013 23:01:10 GMT
    9. Set-Cookie: id=Ga9ag5dFudZcz/wBCRHGnfcvrs8; domain=account.dyn.com; path=/; expires=Sun, 06-Oct-2013 23:01:10 GMT
    10. Accept-Ranges: none
    11. Vary: Accept-Encoding
    12. DEBUG: Fetching UID...
    13. DEBUG: Read UID as '7AC9DD6057A9C6736B871372AAF0AF52B1' - posting data...
    14. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    15. <HTML><HEAD>
    16. <TITLE>302 Found</TITLE>
    17. </HEAD><BODY>
    18. <H1>Found</H1>
    19. The document has moved <A HREF="https://account.dyn.com/">here</A>.<P>
    20. </BODY></HTML>
    21. DEBUG: Response received - verifying result...
    22. Login successful
    Alles anzeigen

    Mit einer Modifikation im Fehlerfall könnte man einen Fehlereintrag ins Systemprotokoll machen lassen und so automatisch per Mail benachrichtigt werden.
    Edit:
    Modifikation noch eingefügt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von dr_mike ()

  • Re: [Script] DynDns Pflicht Login

    Habe es grad eben nur auf der Konsole getestet.
    Wenn du es dyndnslogin.sh nennst und es z.B. in /share/HDA_DATA/ablegst, dann wäre der Crontabeintrag

    Quellcode

    1. 10 15 * * 4 /share/HDA_DATA/dyndnslogin.sh

    Vorher noch mit

    Quellcode

    1. chmod 711 /share/HDA_DATA/dyndnslogin.sh

    Ausführbar machen

    Edit:
    Cron DayofWeek auf 4 gesetzt (vorher '*').

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von dr_mike ()

  • Re: [Script] DynDns Pflicht Login

    OK ich werde das morgen mal antesten... vielen Dank ich werde berichten

    Das script habe ich schnell noch auf den Qnap gebracht..
    Was macht der untere Teil deines Code, wo muss der hin oder als was wird er gespeichert

    Edit: leider kommt bei mir ./dyndnslogin.sh: No such file or directory

    Edit: ist hier ein Fehler drin: dynsdns richtig..?

    Quellcode

    1. COOKIES="/tmp/.dynsdns.cookies.txt"

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von GorillaBD () aus folgendem Grund: Code Block hinzugefügt.