Mal wieder DynDNS...

Borsti67

Mitglied
Mitglied seit
1 Feb 2005
Beiträge
357
Punkte für Reaktionen
0
Punkte
16
Moin,

kann man irgendwie feststellen, was genau die Box an den DynDNS-Anbieter sendet???
Ich habe mittlerweile alle Kombinationen durch, sogar schon die Update-URL komplett manuell (ohne die Variablen) eingegeben: Ich bekomme immer nur "Dynamic DNS-Fehler: Der DynDNS-Anbieter meldet Fehler 400 - Bad Request" oder aber "Dynamic DNS-Fehler: Der DynDNS-Anbieter meldet Fehler 401 - Access Denied".
Der Witz ist, wenn ich die Klartext-Variante aus dem Eingabefeld 'rauskopiere und in den Browser eingebe, funktioniert das! :evil:

Hat jemand DTDNS.NET (bzw. .COM) erfolgreich mit der Box zum Laufen gekriegt?

[Nachtrag: habe jetzt erstmal auf DYNDNS.ORG umgeschaltet, da der beim System dabei ist tut er hoffentlich - aber eigentlich wäre mir DTDNS wichtiger]

Bei dieser Gelegenheit: Ich habe noch ein paar mehr DynDNS, die ich gern aktualisieren würde. Da mir hier wahrscheinlich keiner ein OS/2-Programm dafür nennen kann :cry: gleich die Frage - kriege ich die aktuell zugewiesene IP möglichst simpel aus der Box abgefragt? Damit man das per Script automatisieren kann...
 
Hallo Borsti67,

schau mal in diesem thead nach.

Dort hat MarcoB ein paar infos zu DTDNS gepostet.
 
Danke CyberKing,

aber den Thread hatte ich auch schon... :(
Wie gesagt, wenn ich die URL manuell in den Browser eingebe, wird das Update durchgeführt. Die Box meldet Fehler - verwende ich keine Variablen den 400, setze ich die (korrekt ausgefüllten) Variablen ein krieg' ich den 401.

Aber da die IP ja im Startfenster der Box angezeigt wird, habe ich mir nun ein REXX-Script gestrickt. ;) Vielleicht kann ja noch jemand was damit anfangen (REXX gibt's ja auch für Win etc)...?
Code:
/* REXX */
/* Startseite der Fritz!Box Fon auslesen, externe IP extrahieren, bei Bedarf DynDNS aktualisieren */
/* (c) 2005 T.Appelhagen */
/* benötigt wird "WGET" im Pfad */
/* Parameter:  Username (muss gleich Hostname ohne Domain sein!) */
/*             Password (beides für die DynDNS) */
/*             Update-Intervall in sec (optional) */
/* Errorlevel:  0 = alles OK (dürfte nie kommen, da Endlosschleife ;)) */
/*             10 = keine Daten von der Fritz!Box?! */
/*             20 = die aktuelle IP konnte nicht gespeichert werden */

currentIPaddr = ''            /* aktuelle IP */
lastIPaddr    = '0.0.0.0.'    /* zuletzt bekannte IP */
fIPFile       = 'fritz.ip'    /* ...wird hier gespeichert */
fOutput       = 'fritz.html'  /* Ausgabedatei für WGET */
scanInterval  = 3600          /* alle ... sec prüfen */
setIPcmd      = 'SETIP.CMD'   /* die erledigt das eigentliche DNS-Update */

If RxFuncQuery('SysLoadFuncs') Then Do
  CALL RxFuncAdd 'SysLoadFuncs','RexxUtil','SysLoadFuncs'
  Call SysLoadFuncs
End

Parse Arg userid password

If (userid="?")  Then Usage()
If (userid="")   Then Usage()
If (password="") Then Usage()

Say 'DynDNS-Überwachung für Benutzer' userid 'gestartet.'
Do Forever
  /* Startseite der Fritz!Box auslesen */
  '@wget -O' fOutput '"http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=home&var:pagename=home" >NUL 2>NUL'

  /* letzte bekannte IP lesen */
  If Stream(fIPFile,'C','Open Read') = 'READY:' Then Do
    lastIPaddr = LineIn(fIPFile)
    Call Stream fIPFile,'C','Close'
  End

  /* aktuelle IP extrahieren */
  If Stream(fOutput,'C','Open Read') \= 'READY:' Then Exit 10
  Do While Lines(fOutput)
    If Pos('IP-Adresse',LineIn(fOutput)) > 0 Then Do
      Parse Value LineIn(fOutput) With dummy ">" currentIPaddr "<" dummy
      Leave
    End
  End
  Call Stream fOutput,'C','Close'
  Call SysFileDelete fOutput

  /* ggf. DynDNS-Update... */
  If currentIPaddr \= lastIPaddr Then Do
    /* loggen? */
    Say Date() Time() 'IP geändert von ' lastIPaddr 'auf' currentIPaddr
    /* neue IP wegschreiben */
    Call SysFileDelete fIPFile
    If Stream(fIPFile,'C','Open Write') \= 'READY:' Then Exit 20
    Call LineOut fIPFile,currentIPaddr
    Call Stream fIPFile,'C','Close'
    /* Update-Script aufrufen */
    '@Start' setIPcmd userid password currentIPaddr
  End
  Call SysSleep scanInterval
End
Exit 0

/*-----------------------------------------------------------------*/
/* some simple help                                                */
/*-----------------------------------------------------------------*/
Usage: Procedure Expose scanInterval
  Parse Source . . me .

  Say "Aufruf:"
  Say "   " me "userid password [Prüf-Intervall]"
  Say "    userid         = Benutzername beim DynDNS-Anbieter"
  Say "                     (muss gleich dem Host-Namen sein)"
  Say "    password       = Passwort für's Update"
  Say "    Prf-Intervall = alle ... Sec testen (Default = " || scanInterval || "s)"
  Say
Exit
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.