Login bei Dyn.com automatisieren
Der Betreiber des kostenlosen DynDns-Dienstes hat ja bekanntlich seine kostenlosen Accounts mit einer weiteren Beschränkung versehen(Login mindestens alle 30 Tage). Für alle die den Betreiber noch nicht wechseln möchten oder können, hier eine Lösung um den Login zu automatisieren.
Benutzt den u.s. AutoIT-Code, und kompiliert das Script.
Wichtiger Hinweis: Das Script ist eine Konsolenvariante und muss deshalb mit der passenden Option kompiliert werden. Wenn Ihr das Script im Editor 'Scite' kompiliert sollte die Option bereits durch die Angaben im Header des Scripts gesetzt sein. Wenn Ihr Aut2Exe benutzt muss in Dialog unten bei "Console?" ein Häkchen gesetzt werden, ansonsten seht ihr beim Ausführen des Scripts keine Konsolenausgaben.
Für alle die kein AutoIT installiert haben bzw. die eine fertige EXE haben wollen ---> Download hier
Der Aufruf erfolgt auf der Kommandozeile mit folgenden selbsterklärenden Parametern:
Als Exit-Code gibt das Script bei einem Fehler eine 1 und bei Erfolg eine 0 zurück.
Funktioniert natürlich nur solange "Dyn.com" die Website nicht umstrukuriert. Werde aber bei Rückmeldung von euch den Code gerne aktualisieren
Grüße @colinardo
WICHTIGE INFORMATION: DYN.COM STELLT SEINE KOSTENLOSEN ACCOUNTS AM 7. MAI 2014 EIN ! DAS TOOL WIRD NICHT MEHR AKTUALISIERT!
Benutzt den u.s. AutoIT-Code, und kompiliert das Script.
Wichtiger Hinweis: Das Script ist eine Konsolenvariante und muss deshalb mit der passenden Option kompiliert werden. Wenn Ihr das Script im Editor 'Scite' kompiliert sollte die Option bereits durch die Angaben im Header des Scripts gesetzt sein. Wenn Ihr Aut2Exe benutzt muss in Dialog unten bei "Console?" ein Häkchen gesetzt werden, ansonsten seht ihr beim Ausführen des Scripts keine Konsolenausgaben.
Der Aufruf erfolgt auf der Kommandozeile mit folgenden selbsterklärenden Parametern:
login.exe [username] [password]
Funktioniert natürlich nur solange "Dyn.com" die Website nicht umstrukuriert. Werde aber bei Rückmeldung von euch den Code gerne aktualisieren
#NoTrayIcon
; -------------ÄNDERUNGEN -------------
; 01.03.2014 Login Status wurde nach dem Einloggen nicht mehr korrekt erkannt wegen Deutsch / Englisch-Anpassung der Seite
; 19.09.2013 Dyn.com Seite hat sich geändert (zusätzliche Form ist hinzugekommen, Prüfung auf die ersten 5 Buchstaben der ID der Form hinzugefügt
;--------------------------------------
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=login.exe
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <IE.au3>
if $Cmdline = 2 then
$username = $Cmdline[1]
$password = $Cmdline[2]
Else
ConsoleWrite(@CRLF & "Fehler in Parametern ! --> Info: " & @CRLF & " login.exe [USERNAME] [PASSWORD]" & @CRLF)
Exit 1
EndIf
ConsoleWrite("Login bei Dyn.com..." & @CRLF)
$objIE = _IECreate("https://de.account.dyn.com/entrance/",0,0,1)
if $objIE = 0 then
ConsoleWriteError("Error: Internet-Explorer-Objekt kann nicht erstellt werden!")
exit 1
EndIf
$arrForms = _IEFormGetCollection($objIE)
dim $loginForm
if @error <> 0 then
ConsoleWriteError("Error: Login-Form kann nicht gefunden werden!")
quitError()
Else
for $oForm in $arrForms
if StringLower(StringLeft($oForm.id,5)) = "login" then
$loginForm = $oForm
endif
Next
if $loginForm = "" then
ConsoleWriteError("Error: Login Form nicht gefunden!")
quitError()
endif
EndIf
$objUsername = _IEGetObjById($objIE,$loginForm.id & "_username")
$objPassword = _IEGetObjById($objIE,$loginForm.id & "_password")
$objSubmitBtn = _IEGetObjById($objIE,$loginForm.id & "_submit")
if $objUsername = 0 or $objPassword = 0 or $objSubmitBtn = 0 then
ConsoleWriteError("Error: Mindestens ein benötigtes Steuerelement nicht gefunden!")
quitError()
EndIf
if _IEFormElementSetValue($objUsername,$username) = 1 and _IEFormElementSetValue($objPassword,$password) = 1 then
_IEAction($objSubmitBtn,"Click")
if _IELoadWait($objIE) = 1 then
$links = _IELinkGetCollection($objIE)
$loginSuccess = false
for $l in $links
if StringRegExp($l.innerHTML ,"Log Out|Ausloggen",0) then
$loginSuccess = true
ExitLoop
Endif
Next
if $loginSuccess then
ConsoleWrite("Logout..." & @CRLF)
_IENavigate($objIE,"https://de.account.dyn.com/entrance/?__logout=1",1)
_IEQuit($objIE)
ConsoleWrite("Fertig...")
exit 0
Else
ConsoleWriteError("Error: Falscher Benutzername oder Kennwort!")
quitError()
EndIf
Else
Switch @error
Case 6
ConsoleWriteError("Error: Website Lade-Timeout!")
Case Else
ConsoleWriteError("Error: Website Ladefehler / Code: " & @error)
EndSwitch
quitError()
Endif
Else
ConsoleWriteError("Error: Benutzername oder Passwort konnten nicht gesetzt werden")
quitError()
EndIf
func quitError()
_IEQuit($objIE)
exit 1
EndFunc
Grüße @colinardo
Überarbeitungen:
Datum | Änderungen |
---|---|
07.05.2014 | -SUPPORTENDE- Dyn.com stellt kostenlose Accounts ein. Ende des Supports für den Updater. |
01.03.2014 | FIX - Login Status wurde nach dem Einloggen nicht mehr korrekt erkannt wegen Deutsch / Englisch-Anpassung der Seite |
19.09.2013 | Dyn.com Seite hat sich im HTML-Code ein wenig geändert, Code dahingehend korrigiert und login.exe upgedated. |
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 206840
Url: https://administrator.de/knowledge/login-bei-dyn-com-automatisieren-206840.html
Ausgedruckt am: 12.03.2025 um 09:03 Uhr
21 Kommentare
Neuester Kommentar
Und hier die Bourne-Again-Shell-Version
Copy-Pasted von http://blog.stuart.shelton.me/archives/1024 , auf das im Thread Batch für DYNDNS Konto Login per cURL verwiesen wurde.
Funktioniert unter linux und Windows (mit cygwin).
lks
PS: Benötigt natürlich die passenden packages wie curl & Co.
#!/usr/bin/env bash
LOGIN="Lochkartenstanzer :-)"
PASSWORD="ganz geheimes kennwort"
#UA="Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/0.0.0 (KHTML, like Gecko) Version/0.0.0 Safari/0.0.0"
COOKIES="/tmp/.dynsdns.cookies.txt"
LOGINURL="https://account.dyn.com/entrance/"
POSTURL="$LOGINURL"
CHKURL="https://account.dyn.com/"
(( DEBUG )) && DST="-" || DST="/dev/null"
# Ensure no broken session caching...
[[ -s "$COOKIES" ]] && rm "$COOKIES"
(( 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 -m 1 "multiform" | cut -d"'" -f 6 )"
(( 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" --url "$CHKURL" | grep -q "<span>Welcome <b>$LOGIN</b></span>" && echo "Login successful" || echo >&2 "Login failed"
Copy-Pasted von http://blog.stuart.shelton.me/archives/1024 , auf das im Thread Batch für DYNDNS Konto Login per cURL verwiesen wurde.
Funktioniert unter linux und Windows (mit cygwin).
lks
PS: Benötigt natürlich die passenden packages wie curl & Co.

Zitat von @Lochkartenstanzer:
Moin,> curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" --url "$CHKURL" | grep -q
> "<span>Welcome <b>$LOGIN</b></span>" && echo "Login successful" ||
> echo >&2 "Login failed"
>
hier muss man potentiell auf die Ausgabe nach dem Login achten, ich werde z.B. mit "Hi <username>" begrüßt, sodass ich das "Welcome" abändern musste.
Vielen Dank für das Teilen des Scripts, erspart wirklich Arbeit ;)
Gruß,
Eagle2
Zitat von @eagle2:
hier muss man potentiell auf die Ausgabe nach dem Login achten, ich werde z.B. mit "Hi <username>"
begrüßt, sodass ich das "Welcome" abändern musste.
hier muss man potentiell auf die Ausgabe nach dem Login achten, ich werde z.B. mit "Hi <username>"
begrüßt, sodass ich das "Welcome" abändern musste.
Bei mir hat es mit Welcome funktioniert.
Vielen Dank für das Teilen des Scripts, erspart wirklich Arbeit ;)
Gern geschen. Aber das skript, ist, wie ich schon schrieb, nicht auf meinem Mist gewachsen.
lks
Zitat von @ralfkausk:
Hallo Lochkartenstanzer
Ich habe gerade versucht das auf meinem QNAP NAS zu starten.
Leider funktioniert das nicht weil grep den Parameter "-m" nicht kennt.
Gibt es dafür eine alternative Schreibweise?
Hallo Lochkartenstanzer
Ich habe gerade versucht das auf meinem QNAP NAS zu starten.
Leider funktioniert das nicht weil grep den Parameter "-m" nicht kennt.
Gibt es dafür eine alternative Schreibweise?
was sagt denn "man grep" auf Deinem QNAS? ich habe leider keien im zugriff, so daß ih nciht selber nachschauen kann.
was -m nachen soll ist:
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines. If the input is standard input
from a regular file, and NUM matching lines are output, grep ensures that the
standard input is positioned to just after the last matching line before exiting,
regardless of the presence of trailing context lines. This enables a calling
process to resume a search. When grep stops after NUM matching lines,
it outputs any trailing context lines. When the -c or --count option is also used,
grep does not output a count greater than NUM. When the -v or --invert-match option
is also used, grep stops after outputting NUM non-matching lines.
lks
Hi *,
ich bekomme auf einem Win2008 R2 Small Business Server folgende Fehlermeldung:
=== ERROR ====== ERROR ====== ERROR ====== ERROR ===
Login bei Dyn.com...
--> IE.au3 V2.4-0 Warning from function _IEFormGetCollection, $_IEStatus_NoMatch
Error: Login-Form kann nicht gefunden werden!
=== ERROR ====== ERROR ====== ERROR ====== ERROR ===
kann mir hier einer Helfen?
Einstellungssache im IE?
Viele Grüße & Danke
Heiko
ich bekomme auf einem Win2008 R2 Small Business Server folgende Fehlermeldung:
=== ERROR ====== ERROR ====== ERROR ====== ERROR ===
Login bei Dyn.com...
--> IE.au3 V2.4-0 Warning from function _IEFormGetCollection, $_IEStatus_NoMatch
Error: Login-Form kann nicht gefunden werden!
=== ERROR ====== ERROR ====== ERROR ====== ERROR ===
kann mir hier einer Helfen?
Einstellungssache im IE?
Viele Grüße & Danke
Heiko
Hallo Uwe,
Die erweiterte IE Security ist aus... an das habe ich auch schon gedacht...
Und wenn man die Website im IE startet kommt noch nicht einmal irgend ein Popup/Hinweis/o.ä....
Es handelt sich allerdings um den IE10!
Auf einem Win2012 Server eines Bekannten läuft das Tool ja auch 1a mit IE10... argh... unlogisch.
VG
Heiko
Die erweiterte IE Security ist aus... an das habe ich auch schon gedacht...
Und wenn man die Website im IE startet kommt noch nicht einmal irgend ein Popup/Hinweis/o.ä....
Es handelt sich allerdings um den IE10!
Auf einem Win2012 Server eines Bekannten läuft das Tool ja auch 1a mit IE10... argh... unlogisch.
VG
Heiko