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-Key: 206565

Url: https://administrator.de/contentid/206565

Printed on: April 18, 2024 at 00:04 o'clock

Mitglied: 110135
110135 May 16, 2013 at 10:08:03 (UTC)
Goto Top
Hallo,

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

Gruß,
Florian
Member: Looser27
Looser27 May 16, 2013 updated at 10:27:10 (UTC)
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ß
Member: Pjordorf
Pjordorf May 16, 2013 at 14:44:53 (UTC)
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
Member: marinux
marinux May 16, 2013 at 15:35:30 (UTC)
Goto Top
stellt sich nur die Frage, warum bei dyndns bleiben, wenn es genug kostenlose Alternativen gibt?

Gruß
Member: Pjordorf
Pjordorf May 16, 2013 at 15:59:41 (UTC)
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
Member: Supaman
Supaman May 16, 2013 at 16:36:10 (UTC)
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
Member: Looser27
Looser27 May 16, 2013 at 18:37:53 (UTC)
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.
Member: Pjordorf
Pjordorf May 16, 2013 at 21:19:55 (UTC)
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
Member: Looser27
Looser27 May 17, 2013 updated at 06:18:42 (UTC)
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ß
Member: Supaman
Supaman May 17, 2013 at 08:30:53 (UTC)
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.
Member: Supaman
Supaman May 17, 2013 updated at 09:18:06 (UTC)
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...
Member: Looser27
Looser27 May 17, 2013 updated at 09:31:29 (UTC)
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.
Member: Lochkartenstanzer
Lochkartenstanzer May 17, 2013 updated at 10:29:45 (UTC)
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
Member: IceAge
IceAge May 17, 2013, updated at May 21, 2013 at 06:46:20 (UTC)
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.
Member: Pjordorf
Pjordorf May 17, 2013 at 15:09:19 (UTC)
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
Member: schilz
schilz Jun 03, 2013 at 23:45:44 (UTC)
Goto Top