supaman
Goto Top

Batch für DYNDNS Konto Login per cURL

Hallo,

dyndns hat neuerdings leider weitere Restriktionen für bestehende, kostenfreie Accounts eingeführt. Nun muss man sich jeden Monat auf der Webseite einloggen, damit der Account nicht verfällt.

Ich würde das gerne per cURL automatisisren, allerdings stecke ich nicht soo tief in der Materie drin und würde mich über ein paar Zeilen Code freuenface-smile

Viele Grüße,

Supa

Content-ID: 206565

Url: https://administrator.de/forum/batch-fuer-dyndns-konto-login-per-curl-206565.html

Ausgedruckt am: 26.12.2024 um 19:12 Uhr

110135
110135 16.05.2013 um 12:08:03 Uhr
Goto Top
Hallo,

ich glaube nicht, dass das in deren AGB erlaubt ist den Login zu automatisieren.

Gruß,
Florian
Looser27
Looser27 16.05.2013 aktualisiert um 12:27:10 Uhr
Goto Top
Ich hab mir ne Erinnerung in meinen Kalender gesetzt, damit ich mich alle 3 Wochen einlogge.....obwohl ich an der Lösung mit dem Skript auch interessiert wäre.

Gruß
Pjordorf
Pjordorf 16.05.2013 um 16:44:53 Uhr
Goto Top
Hallo,

Zitat von @Looser27:
damit ich mich alle 3 Wochen einlogge.....obwohl ich an der Lösung mit dem Skript
Es gibt da ein nettes Tool das es auch kann. http://wiki.imacros.net/Community_Editions und damit könnte es so aussehen
' DynDNS Autmatisch aktualisieren durch einmaliges Login per Monat  

' Domaene 123  
' Domaene 456  

VERSION BUILD=xxxxxx
SET !TIMEOUT_PAGE 20
SET !REPLAYSPEED SLOW
TAB T=1
TAB CLOSEALLOTHERS

' 123 mit 2 Namen  
URL GOTO=http://dyn.com/dns/
TAG POS=1 TYPE=A ATTR=TXT:Sign<SP>In
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/entrance/ ATTR=NAME:username CONTENT=loginnamefuer123
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/entrance/ ATTR=NAME:password CONTENT=passwortfuer123
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/entrance/ ATTR=NAME:submit
TAG POS=2 TYPE=A ATTR=TXT:My<SP>Services
TAG POS=2 TYPE=A ATTR=TXT:Details
WAIT SECONDS=3

' name eins aufrufen und nur aktualisieren  
TAG POS=1 TYPE=A ATTR=TXT:name1.domaene123.wasauchimmer
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/dns/dyndns/name1.domaene123.wasauchimmer ATTR=NAME:submit

' name zwei aufrufen und nur aktualisieren  
TAG POS=1 TYPE=A ATTR=TXT:name2.domaene123.wasauchimmer
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/dns/dyndns/name2.domaene123.wasauchimmer ATTR=NAME:submit
WAIT SECONDS=4
TAG POS=1 TYPE=A ATTR=TXT:Log<SP>Out
WAIT SECONDS=1

' 456 mit 1 Name  
TAG POS=1 TYPE=A ATTR=TXT:Sign<SP>In
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:https://account.dyn.com/entrance/?return=/ ATTR=NAME:username CONTENT=loginnamefuer456
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:https://account.dyn.com/entrance/?return=/ ATTR=NAME:password CONTENT=passwortfuer456
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:https://account.dyn.com/entrance/?return=/ ATTR=NAME:submit
TAG POS=2 TYPE=A ATTR=TXT:My<SP>Services
TAG POS=2 TYPE=A ATTR=TXT:Details
WAIT SECONDS=3

' name eins aufrufen und nur aktualisieren  
TAG POS=1 TYPE=A ATTR=TXT:name1.domaene456.wasauchimmer
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/dns/dyndns/name1.domaene456.wasauchimmer ATTR=NAME:submit
WAIT SECONDS=5
TAG POS=1 TYPE=A ATTR=TXT:Log<SP>Out
WAIT SECONDS=2

URL GOTO=http://www.aldi-nord.de/
WAIT SECONDS=5
Gruß,
Peter
marinux
marinux 16.05.2013 um 17:35:30 Uhr
Goto Top
stellt sich nur die Frage, warum bei dyndns bleiben, wenn es genug kostenlose Alternativen gibt?

Gruß
Pjordorf
Pjordorf 16.05.2013 um 17:59:41 Uhr
Goto Top
Hallo,

Zitat von @marinux:
wenn es genug kostenlose Alternativen gibt?
Das ist zum Teil wohl nicht das Problem. Es gibt auch heute noch genug Router und andere Geräte die eben diese Alternativen nicht in ihrer Firmware zulassen und dort eben nur ein dyndns.com oder dyndns.org akzeptiert wird. Und da diese Geräte nach wie vor in ihren Funktionenn vollkommen ausreichend sind muss nicht zwingend die Hardware getauscht werden.

Gruß,
Peter
Supaman
Supaman 16.05.2013 um 18:36:10 Uhr
Goto Top
@Pjordorf
der Ansatz ist ganz nett, aber nicht das was ich mir vorstelle, weil Chrome, Firefox, etc vorausgestezt wird.

Um es mal ein Beispiel zu nennen mit cURL für einen Reconenct eines Netgear DG834:

START --------------
rem ### Netgear / Netgear DG834B Netgear DGB834PN
rem
curl "http://login:pw@192.168.0.1/setup.cgi" -d "todo=disconnect&this_file=st_poe.htm&next_file=st_poe.htm"
curl "http://login:pw@192.168.0.1/setup.cgi" -d "todo=connect&this_file=st_poe.htm&next_file=st_poe.htm"
Ende --------------

Das ganze im Windows Task als Batch Datei im Windows Manager eintragen und fertig - so stelle ich mir die "ideale" Lösung vor. Leider stecke ich den ganzen "setup.cgi" etc zu wenig drin, um das selber zu machen face-sad
Looser27
Looser27 16.05.2013 um 20:37:53 Uhr
Goto Top
Laut der Mail, die ich eben von dyndns bekommen habe, funktionieren die automatischen LogIn Progs und Co. nicht. Klar wollen die Geld verdienen. Ich denke aber, dass ich mittelfristig auf einen anderen Anbieter wechseln werde.
Pjordorf
Pjordorf 16.05.2013 um 23:19:55 Uhr
Goto Top
Hallo,

Zitat von @Looser27:
Laut der Mail, die ich eben von dyndns bekommen habe, funktionieren die automatischen LogIn Progs und Co. nicht.
Klar, die werden dir nicht sagen das die trotzdem gehen, oder? Die oben genannte Lösung mittels des Kostenlosen iMacros (hier für den IE http://www.iopus.com/download/imacros-ie/ ) funktioniert sehr wohl. Was meinst du was das Skript von mir dort tut?

Gruß,
Peter
Looser27
Looser27 17.05.2013 aktualisiert um 08:18:42 Uhr
Goto Top
Hallo,

Ich habe das ganze gerade mal mit dem iMacro Tool für den Mozilla versucht. Es funktioniert nicht. Er wechselt zwar zur LogIn Seite, aber das wars auch schon.

Das Skript sieht so aus:

VERSION BUILD=8300326 RECORDER=FX
TAB T=1
URL GOTO=http://dyn.com/dns/
TAG POS=1 TYPE=A ATTR=TXT:Sign<SP>In
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/entrance/ ATTR=ID:login76_username CONTENT=USERNAME
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/entrance/ ATTR=ID:login76_password CONTENT=PASSWORT_FUER_USERNAME
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:login76 ATTR=ID:login76_submit
TAG POS=2 TYPE=A ATTR=TXT:My<SP>Services
TAG POS=1 TYPE=A ATTR=TXT:Log<SP>Out

Das Problem scheint zu sein, dass die das Feld für die Eingabe des Usernamens dynamisch umbenennen. ATTR=ID:login76_username heißt bei jedem erneuten Aufzeichnen anders. obwohl immer das selbe aufgezeichnet wird.


Gruß
Supaman
Supaman 17.05.2013 um 10:30:53 Uhr
Goto Top
Man kann den automatisierten Login zwar erschweren, aber so ohne weiteres nicht ganz unterbinden. Vom Ablauf her müsste das so aussehen:

1. Webseiten Quelltext laden
2. Variablen Login Parameter identifizieren und in Variable sichern
3. Angepassten Login
4. Webseite-> Services
5. Logout

Der variable Parameter sieht so aus:

function set_login293_validation(){
var f=document.getElementById("login293");

cURL wäre am elegantesten, weil keine weiteren "Zusätze" benötigt werden und das ganze Batch fähig ist.
Supaman
Supaman 17.05.2013 aktualisiert um 11:18:06 Uhr
Goto Top
Hier gibts eine erste Quick&Dirty Lösung - leider linux Script.

https://groups.google.com/forum/?fromgroups#!topic/linux.debian.user.ger ...

Nachtrag:
Linux script mit cURL, etwas aufgeräumter: http://blog.stuart.shelton.me/archives/1024
Leider nicht 1:1 für Windows verwendbar durch unterschiedliche Variablen Schreibweise und Bash Commands wie "grep".

Diese Version lässt sich sicher anpassen...
Looser27
Looser27 17.05.2013 aktualisiert um 11:31:29 Uhr
Goto Top
Wenn man das Aufzeichnen über XY Koordinaten macht, springt er zumindest schon mal in die richtigen Felder. Jetzt fehlt mit nur noch die Zeile im Skript mit dem man unabhängig vom Feldnamen einen Eintrag in ein Feld schreiben kann.
Dann sind wir schon da, denn das Design der HP werden die nicht ändern face-wink

Nachtrag: Funktioniert nicht. Fenstergröße muß immer identisch sein. Oder man zeichnet im Vollbild auf.
Lochkartenstanzer
Lochkartenstanzer 17.05.2013 aktualisiert um 12:29:45 Uhr
Goto Top
Zitat von @Supaman:
Linux script mit cURL, etwas aufgeräumter: http://blog.stuart.shelton.me/archives/1024

Danke für den Hinweis: Funktioniert unter wheezy unproblematisch und verschafft einem Luft, sich in Ruhe eine andere Lösung zu überlegen.

Leider nicht 1:1 für Windows verwendbar durch unterschiedliche Variablen Schreibweise und Bash Commands wie "grep".

Nimm doch einfach cygwin. Da kannst Du das dann unverändert laufenlassen und kannst es sogar aus der Aufgabenplanung von Windows heraus aufrufen.

lks
IceAge
IceAge 17.05.2013, aktualisiert am 21.05.2013 um 08:46:20 Uhr
Goto Top
Die Kombi mit Cygwin und dem o.g. Skript scheint zu funktionieren... Bei der Installation von Cygwin nur dran denken das die Pakete x11 (komplett), curl (Net-Curl), sowie die Libarys (libs-libcurl3) mit installiert werden..

P.S. Aber irgendwie fühlt es sich an, als wenn wir hier mit Kanonen auf Spatzen schießen.
Pjordorf
Pjordorf 17.05.2013 um 17:09:19 Uhr
Goto Top
Hallo,

Zitat von @Looser27:
 TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/entrance/ ATTR=ID:login76_username CONTENT=USERNAME
Das ist eben im Script für den IE(9) anders. Dort wird nur
 ATTR=ID:username
verwendet. Warum? Müsstest du bei iopus nachfragen.

Wie gesagt, obiges läuft schon länger mit den IE(9). Da werden sich in insgesamt 12 Konten eingeloggt.

Gruß,
Peter
schilz
schilz 04.06.2013 um 01:45:44 Uhr
Goto Top