DynDNS Einträge über Spielplatz-Extrem erweitern?

      DynDNS Einträge über Spielplatz-Extrem erweitern?

      Dachte ich mach da mal was neues zu auf.

      Ich weiß es gibt die Möglichkeit über wget, curl und co. DynDNS zu steuern. Hatte da auch mal ein Debian -Script welches das SIGN nutzt um einen disconnect zu erkennen und dann das Skript auslöst für die Aktualisierung der IP.
      Mich hatte jetzt nur gewundert warum in der SPH-Config nur ein einziger DynDNS Eintrag vorhanden ist. Wo findet man die restlichen? Kann man diese eventuell so manipulieren, dass man seine eigene Url unterbringen kann?

      Quellcode

      1. https://eigenerDD.de?ip=&hash=


      Oder das man den Prozess, welcher bei einem Reconnect ausgelöst wird und die Einträge im DynDNS des SPH auslöst, anpassen kann?

      Grüße
      Moin @heinzm!

      Deine Fragestellung ist schon etwas einschränkend - hat ja nur am Rand mit Spielplatz-Extrem zu tun ;)

      Um DynDNS kümmert sich ein Daemon = /bin/ddnsc
      Seine Config etc. scheint er unter /var abzulegen, wenn aktiv.
      (/var/ddns.cfg sollte die Config sein, wenn dyndns aktiv ist -- evtl. reicht es diese anzupassen)

      Das in der SPH-Config nur ein Eintrag steht macht Sinn ==> kann ja auch nur einer aktiv sein :D

      Ob der Daemon mehr/andere Dienste unterstützen kann, als die WebUI des SPH --> keine Ahnung ;)
      (könnte man aber eventuell per Google herausfinden - ddnsc scheint ein normales OpenSource-Tool zu sein)

      Die Frage ist aber: macht das überhaupt Sinn...?

      ==> um an die Config oder Ähnliches heran zu kommen, brauchst Du Telnet & mehr.
      Da kannst Du es genauso gut einfach per Script oder anderem Tool erledigen...

      Deshalb die 2. Frage: was genau willst Du erreichen?

      Ein Script, welches bei neuer IP ein wget oder ähnliches auslöst, sollte recht einfach zu erreichen sein.
      (der ddnsc scheint zusätzlich den Abbau der ppp-Verbidung zu unterbinden, wenn er aktiv ist - zumindest den Fehlermeldungs-Strings im Binary nach)

      mfg, emkay

      @xdjbx: hast Du schon getestet? Weil auf pure Ankündigungen brauch' man sich bei der Telekom nicht verlassen... ;)

      EDIT: Lustig...

      Das war wohl eh vorgesehen - gehört wohl zu den entfernten Features, welche die Anwender aus Telekom-Sicht nur verwirren würden :D

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „eMKay77“ ()

      Ich hätte einfach einen vorhanden Eintrag so modifiziert, dass dieser einfach eine andere Url benutzt. Die anderen Eingabemasken sind ja identisch (Domain, User, Passwort).

      Spielplatz-Extrem deswegen, weil man diesen Eintrag eventuell bei jedem Neustart hätte ändern müssen.

      Wie kann man im SHP eine neue IP detektieren? x sek cronjob?

      eMKay77 schrieb:


      @xdjbx: hast Du schon getestet? Weil auf pure Ankündigungen brauch' man sich bei der Telekom nicht verlassen... ;)

      EDIT: Lustig...

      Das war wohl eh vorgesehen - gehört wohl zu den entfernten Features, welche die Anwender aus Telekom-Sicht nur verwirren würden :D


      Ja, genau den den Eintrag hatte ich schon vor einiger Zeit gefunden.... den kann man ganz einfach wieder aktivieren...

      Und dann kann man die Daten frei eintragen..
      Die neue Maske bietet dann noch mehr Möglichkeiten.
      Moin!

      Wisi schrieb:

      In welcher Datei ist der Eintrag aus dem Screenshot zu finden? Würde das gerne ändern, damit ich meinen eigenen Dienst eintragen kann
      das ist in /html/content/internet/dyn_dns.html -- aber ob es reicht, das einfach wieder einzukommentieren, weiß ich nicht.
      So auf die Schnelle würd' ich sagen: Etwas mehr als das wird nötig sein...

      mfg, emkay

      hefr54 schrieb:

      Ist leider so, die HTML ändern erzeugt zwar den Eintrag, lässt sich auch speichern ist aber
      nicht wirklich gespeichert
      Da fehlt an anderer Stelle noch was

      das liegt daran dass im lua dahinter nur auf entsprechende anbieter geprüft wird

      Quellcode

      1. local ddns_provider_list = {"DynDNS.com", "No-IP.com", "Selfhost.de", "TZO.com", "Strato"}
      2. local ddns_protocol_list = {"dyndns", "no-ip.com", "selfhost.de", "TZO", "strato"}


      und auch das ddnsc binary lässt darauf schließen dass diese provider hardcodiert sind (habs nurmal überflogen)
      Man könnt' jetzt zwar das ddnsc-Binary anpassen - aber das lohnt alles nich...

      Zu viele Stellen müssten angepasst werden - und da man eh Telnet/Rootzugriff braucht, kann man's auch gleich per Script/Updatetool von Hand machen ;)
      (man macht das ja nur einmal...)

      Und es gibt bestimmt auch ein OpenSource-Update-Tool zum Crosscompilieren ;)

      mfg, emkay

      EDIT: ich nutz' ja kein DynDNS, sonst würd' ich ja was basteln...
      EDIT2: @hefr54: Du bräuchtest doch nur die Update-Funktion per wget auslösen... (mit aktuellen Parametern) => sollte per Script funktionieren.
      @hefr54: also... das 'seltsame' wget des SPHs beherrscht username/passwd...
      (das aus busybox-mips scheinbar nicht)

      Hat man also:
      Username
      Password
      Update-Url in 'HTTP-GET'-Form

      ...sollte ein Update per wget möglich sein.
      (da das wget des SPHs etwas seltsam ist bzgl. Parametern und bei Fehlerhaften gern einfach abstürzt, wäre ein Hilfsscript wohl ratsam....)

      --> der Umstand, das ich kein DynDNS nutze, macht die Sache aufwändiger zu testen. Und mich jetzt extra bei allen möglichen Diensten anzumelden - da fehlt mir irgendwie die Motivation ;)

      Aber wie gesagt: etwas ShellScript + SPH-wget im richtigen Moment (in festen Abständen & bei IP-Wechsel) sollten reichen...

      mfg, emkay
      Ich habe hier einmal ein DDNS Updater Script gebastelt, dass per cronjob ausgeführt werden kann.

      z.B. Eintrag in crontab zur Ausführung einmal pro Minute:

      Quellcode

      1. */1 * * * * /opt/bin/dyndns.sh


      Verwendet das wget und nslookup der busybox-mips.
      Also in /opt/bin folgendes ausführen:

      Quellcode

      1. cd /opt/bin
      2. ln -s busybox-mips wget
      3. ln -s busybox-mips nslookup


      Erzeugt eine "/tmp/lastip" mit den Infos der letzten IP-Aktualisierung und eine "/tmp/dyndns.log" mit den Daten des letzten Aufrufs.

      Nach eigenen Bedürfnissen sind anpassen:

      USERNAME
      PASSWORD
      HOSTNAME
      URL

      Aufruf mit dem Parameter DEBUG gibt die Variablenwerte aus.

      Shell-Script

      1. #!/bin/sh
      2. USERNAME="xxxxxx"
      3. PASSWORD="xxxxxx"
      4. HOSTNAME="xxx.xxx.xx"
      5. IP=`ip addr show gre1 | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'`
      6. LAST_IP=`nslookup $HOSTNAME 2>/dev/null | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'`
      7. # LAST_IP=`cat /tmp/lastip | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}' | head -n1`
      8. URL="http://$USERNAME:$PASSWORD@update.twodns.de/update?hostname=$HOSTNAME&ip=$IP"
      9. LAST_IP_FILE="/tmp/lastip"
      10. LOGFILE="/tmp/dyndns.log"
      11. RESULT=""
      12. if [ "$1" = "DEBUG" ]; then
      13. echo USERNAME: $USERNAME
      14. echo PASSWORD: $PASSWORD
      15. echo HOSTNAME: $HOSTNAME
      16. echo CURRENT IP: $IP
      17. echo REGISTERED IP: $LAST_IP
      18. echo UPDATE URL: $URL
      19. fi
      20. date > $LOGFILE
      21. if [ "$IP" != "" ]; then
      22. if [ "$IP" != "$LAST_IP" ]; then
      23. while [ "$RESULT" = "" ]
      24. do
      25. RESULT=`wget -q -O - $URL | grep -o -E "good|nochg|abuse|badauth|notfqdn|nohost|abuse|dnserr"`
      26. if [ "$RESULT" = "nochg" ] || [ "$RESULT" = "good" ]; then
      27. date > $LAST_IP_FILE
      28. echo "$HOSTNAME says $RESULT for: $IP" >> $LAST_IP_FILE
      29. echo "OLD IP was: $LAST_IP" >> $LAST_IP_FILE
      30. fi
      31. echo "$HOSTNAME says $RESULT for: $IP" >> $LOGFILE
      32. sleep 5
      33. done
      34. else
      35. echo "IP is still the same: $LAST_IP for $HOSTNAME" >> $LOGFILE
      36. fi
      37. else
      38. echo "Checkip failed!" >> $LOGFILE
      39. fi

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ds365“ ()

      xdjbx schrieb:

      Die Arbeit brauchen wir uns nicht machen. In der neuen Firmware kann man einen eigenen Dyndns Dienst eintragen.


      Mit der neuen Firmware kann ich jetzt einen eigenen dynamischen DNS Dienst hinzufügen.
      Ich habe eine Domain bei Namecheap, welche auch dynamische DNS Dienste anbieten.
      Bei einer FritzBox kann man beispielsweise mit folgender URL dynamicdns.park-your-domain.com/update?host=<username>&domain=<domain>&password=<pass>&ip=<ipaddr> die IP-Adresse aktualisieren, der Speedport möchte aber eine Update-URL nach dynDNS V2 Standard (welcher von Namecheap nicht unterstützt wird).
      Weiß jemand, ob man die Update URL entsprechend dynDNS V2 Standard anpassen kann? Im Netz habe ich gelesen, dass dieser Standard HTTP-AUTH oder sowas benutzt, demnach wird es mit so einer Lösung dann wahrscheinlich nix?
      Herzlich Willkommen Hummel95!

      Ja, der dynDNS2 Standard schreibt quasi bis auf die Domain bzw. die IP und die übergebenen Werte "<>" alles vor:

      Quellcode

      1. http(s)://<loginname>:<passwort>@domain/nic/update?hostname=<bezeichnung>&myip=<ip>

      Unterstützt ein Anbieter dieses Format nicht, könnte man höflich anfragen oder muss eben ausweichen. Der Speedport (Hybrid) von der Telekom setzt das auch so um. Er sendet sogar ein eigentlich überflüssiges "&" hinter der IP mit. Alles was man hinter der Domain versucht mit anzuhängen schluckt er solange keine Sonderzeichen folgen, ignoriert aber die Ausführung, bzw. quitiert er sie im Log wie folgt:

      Quellcode

      1. (D001) Aktualisierung für Dynamic DNS war nicht erfolgreich. Der Update Server konnte nicht erreicht werden.

      In meinen Versuchen schickt er die Anfrage mit http(s)://domain/irgendwas nicht einmal heraus.

      Grüße

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „heinzm“ ()