spdns Dynamic DNS Update-Client

Dyn stellt seine seinen kostenlosen Dienst ein. War allerdings nach den ganzen Restriktionen in den letzte Monaten irgendwie schon zu erwarten. Trotzdem trifft es einen doch irgendwie unvorbereitet.
Wenn nämlich die Rechner zu hause weiter über das Internet erreichbar sein sollen, muss man sich nach einer Alternative umsehen.
Ich hab mich als Alternative für Spdns entschieden. Ein Angebot der Securepoint GmbH.
Man darf dort bis zu 5 Hosts anlegen und kann zwischen mehreren Top-Level-Domains auswählen.
Die Anmeldung ist einfach und unkompliziert und erfordert lediglich einen Nutzernamen mit Passwort und einer EMail-Adresse zur Freischaltung.
Zu erreichen ist der Dienst unter spdns.de. Die Daten liegen auf deutschen Servern und unterliegen somit dem EU-Recht zum Datenschutz.

Ich nutze den Dienst jetzt seit fast einem Jahr und bislang gab es keinerlei Probleme.
Das einzige Problem war es, dass mein Router keine Möglichkeit bietet, mit diesem Dienst umzugehen. Die einzigen, einstellbaren Dienste sind dort DynDns und TZO.com, welches mittlerweile auch DynDNS gehört und somit ab demnächst auch kostenpflichtig ist.

Ich hab daher einen kleinen, schnellen Update-Client in C geschrieben, der problemlos auch auf dem Beaglebone Black, dem Banana Pi oder dem Raspberry Pi compiliert werden kann und läuft.
Der Update-Client läuft nicht als Daemon, sondern wird durch einen CRON-Job gesteuert.
Und wenn man auf dieser Seite gelandet ist, heißt es, dass er auch noch läuft und funktioniert 😉
Bei jedem Aufruf überprüft der Update-Client die aktuelle IP durch Aufruf einer Webseite, die die IP-Adresse des aufrufenden Clients zurück liefert, und führt nur dann ein Update durch, wenn sich die IP seit dem letzten Aufruf geändert hat.
Auf welcher Seite die eigene IP überprüft wird, kann man frei wählen. Getestet sind die Seite von DynDNS unter http://checkip.dyn.com/ und die Seite von spdns.de unter http://checkip.spdns.de/.
Da die IP Adresse mittels einer regular Expression gesucht wird, sollten aber auch andere Seiten funktionieren.

Der Client unterstützt jetzt beim Update der IP die Basic Authentication, so das er auch mit anderen Diensten wie No-IP laufen sollte. Das habe ich allerdings noch nicht getestet, da ich dort keinen Account habe.
Sollte das jemand versuchen, wäre ein Feedback schön, ob es geklappt hat.

Ich übernehme keine Haftung für enthaltene Fehler oder für Schäden, die im Zusammenhang mit der Verwendung der Software entstehen.

Update 28.12.2014: Dank der Unterstützung von Leitwolf ist diese Version deutlich nutzerfreundlicher geworden: man muss nicht mehr im Source-Code rumfummeln, sondern kann (fast) alle Einstellungen in der Config-Datei vornehmen. Dafür an dieser Stelle nochmal ein Dankeschön!!

Installation für SPDNS in kurz!

  • Binary herunter laden: Download Binary-Paket
  • Mit
    tar -zxvf spdnsUpdater_bin.tar.gz

    die Datei entpacken

  • Die Datei „spdnsu.conf“ mit
    mv spdnsu.conf /etc/

    nach „/etc/“ verschieben

  • Einen Ordner im home-Verzeichnis erstellen mit
    mkdir /home/YourUserName/updater
  • Die Datei „spdnsu“ mit
     mv spdnsu /home/YourUserName/updater/

    in den Ordner verschieben

  • Die Datei „spdnsu“ ausführbar machen mit
    chmod u+x /home/YourUserName/updater/spdnsu
  • Die richtigen Rechte für den Ordner setzen mit
    chown -R YourUserName:YourUserName /home/YourUserName/updater/
  • Die Datei /etc/spdnsu.conf anpassen:
    Dort können bis zu 5 HOSTs eingetragen werden. Wenn Update-Tokens verwendet werden ( siehe dazu Diesen Artikel ) muss der Parameter „isToken = 1“ gesetzt werden. Bei Authentifizierung mit Nutzernamen und Passwort ist die Einstellung „isToken = 0“.

     
    # path of log file. File must be writeable.
    logfile = /home/YourUserName/updater/spdnsu.log
    
    [HOST]
    host = host1.spdns.de
    user = username
    pwd  = password
    isToken = 1
    
    [HOST]
    host = host2.spdns.de
    user = username
    pwd  = password
    isToken = 1
    .
    .
    .
    
  • Jetzt zum Nutzer YourUserName werden mit
    su -l YourUserName
  • Den CRon-Job einrichten:
    EDITOR=nano crontab -e

    Dort die folgende Zeile einfügen:

    */10 * * * * /home/YourUserName/updater/spdnsu 
  • Testen, ob alles funktioniert. Dazu das Programm manuell starten mit
    ./home/YourUserName/updater/spdnsu

    Wenn alles glatt geht, sollten 2 neue Dateien erzeugt worden sein: Die Log-Datei ( /home/YourUserName/updater/spdnsu.log ) und die IP-Datei ( /tmp/spdnsuIP.cnf ). In der Log-Datei sollte ein Eintrag stehen, dass die IP erfolgreich aktualisiert wurde und in der IP-Datei sollte jetzt die aktuelle IP drin stehen.
    Log-Datei:

    Log: IP from host host1.spdns.de updated to 111.222.333.444 	 Time: Mon Apr 28 21:55:37 2014
    Log: IP from host host2.spdns.de updated to 111.222.333.444 	 Time: Mon Apr 28 21:55:37 2014

    IP-Datei:

    currentIP=111.222.333.444
    

Und fertig!!

Wer ein wenig mehr ändern, einstellen oder das Programm selber kompilieren möchte: hier die

Ausführliche Anleitung

Download

Der Update-Client kann als Source-Code oder als Binary herunter geladen werden, falls – wie bei mir auf dem Beaglebone Black oder dem Banana Pi, der GNU C-Compiler nicht installiert ist.

Source-Paket: Download Source-Paket
Binary-Paket: Download Binary-Paket

Installation

Die Pakete bestehen jeweils aus 2 Dateien. Das Source-Paket aus spdnsUpdater.c und spdnsu.conf und das Binary-Paket aus spdnsu.conf und dem Programm spdnsu.

  1. Entpacken
  2. Zuerst muss das Archiv entpackt werden. Dazu in der Konsole

    tar -zxvf spdnsUpdater_src.tar.gz

    für das Source-Paket bzw.

    tar -zxvf spdnsUpdater_bin.tar.gz

    für das Binary-Paket eingeben.

  3. Source-Code anpassen – nur für das Source-Paket (optional)

  4. Ist in dieser Version nicht mehr nötig, da alles in der Config-Datei eingestellt werden kann. Nur, wenn man einen eigenen Host zum überprüfen seiner IP hat, muss dieser noch in die Liste eingetragen und die Variable NUMBER_IP_HOSTS angepasst werden.
    Also wird die Code-Zeile

    char * ipHost[NUMBER_IP_HOSTS] = { "checkip.spdns.de", "checkip.dyn.com", "checkip.dyn.org" }; 
    

    abgeändert in

    char * ipHost[NUMBER_IP_HOSTS] = { "my.updatehost.com", "checkip.spdns.de", "checkip.dyn.com", "checkip.dyn.org" }; 
    

  5. Kompilieren – nur für das Source-Paket (optional)
  6. Die Source-Datei wird einfach mit dem Befehl

    gcc spdnsUpdater.c -o spdnsu

    kompliliert. Die Option „-o spdnsu“ gibt den Namen des komplierten Programms an. Dieser ist frei wählbar.

    Jetzt noch die kompilierte Datei an die gewünschte Stelle kopieren und mit dem Befehl

    chmod u+x spdnsu

    ausführbar machen.

  7. Konfigurieren
  8. Folgende Default-Werte sind jetzt für das Programm eingestellt:

    • Die Config-Datei: /etc/spdnsu.conf Wenn man einen anderen Pfad nehmen möchte, kann der Pfad zu der Config-Datei beim Aufruf des Programms als Kommandozeilen-Parameter übergeben werden (spdnsu –configfile=/path/to/spdnsu.conf )
    • Die Log-Datei: /home/pi/spdnsu.log Wenn man einen anderen Pfad nehmen möchte, kann der Pfad in der Config-Datei geändert werden
    • Die IP-Datei: /tmp/spdnsuIP.cnf In dieser Datei wird die aktuelle IP-Adresse abgespeichert. Wenn man einen anderen Pfad nehmen möchte, kann der Pfad in der Config-Datei geändert werden
    • Update-Host: update.spdnsu.de Das ist der Update-Host des Anbieters, bei dem die neue IP-Adresse hinterlegt werden soll. Per Default ist SPDNS.de eingestellt mit dem Update-Host „update.spdns.de“

    Jetzt also die Datei spdnsu.conf anpassen und an die gewünschte Stelle kopieren ( Default ist /etc/spdnsu.conf ).

     
    # path of log file. File must be writeable.
    # logfile = /home/pi/spdnsu.log
    
    # the name of the file, where the current IP is stored. File must be writeable.
    # ipFile = /tmp/spdnsuIP.cnf
    
    [HOST]
    # URL for the Host to be updated, e.g. update.spdns.de (SPDNS) or dynupdate.no-ip.com (No-IP). 
    # updateHost = update.spdns.de
    host = host1.spdns.de
    user = user1
    pwd  = password1
    isToken = 1
    
    [HOST]
    # URL for the Host to be updated, e.g. update.spdns.de (SPDNS) or dynupdate.no-ip.com (No-IP)
    updateHost = dynupdate.no-ip.com
    host = host2.no-ip.com
    user = user2
    pwd  = password2
    isToken = 0
    .
    .
    .
    

    Der Eintrag „host“ ist der komplette Name des von Ihnen angemeldeten Hosts, dessen IP aktuell gehalten werden soll, also etwas in der Art wie „example.spdns.org“. Dazu noch Nutzername (user) und Passwort (pwd) zu diesem Host.
    Neu:
    SPDNS bietet die Möglichkeit, zum Updaten eines Hosts bei der Authentifizierung nicht Nutzernamen und Passwort zu übertragen, sondern nur den Namen des Hosts und ein Update-Token. Dieses Token wird für jeden Host im Administrations-Bereich auf der Seite von SPDNS.de individuell erzeugt und ist nur für diesen Host gültig.
    Wenn man also Update-Tokens nutzt, muss bei Passwort das Token eingetragen und der Wert von isToken auf 1 gesetzt werden! Mehr zu Update-Tokens siehe Artikel Update-Tokens von Securepoint.

  9. Testen

  10. Das war es auch schon. Mit dem Befehl

    ./spdnsu [--configfile=/path/to/spdnsu.conf]

    das Programm starten und testen. Wenn alles glatt geht, sollten 2 neue Dateien erzeugt worden sein: Die Log-Datei und die IP-Datei. In der Log-Datei sollte ein Eintrag stehen, dass die IP erfolgreich aktualisiert wurde und in der IP-Datei sollte jetzt die aktuelle IP drin stehen.
    Log-Datei:

    Log: IP from host host1.spdns.de updated to 111.222.333.444 	 Time: Mon Apr 28 21:55:37 2014
    Log: IP from host host2.spdns.de updated to 111.222.333.444 	 Time: Mon Apr 28 21:55:37 2014

    IP-Datei:

    currentIP=111.222.333.444
    

    Zur Sicherheit sollte man auch nochmal auf seinem Account nachsehen, ob das Update auch wirklich geklappt hat.

CRON-Job einrichten

Wenn alles funktioniert hat, muss jetzt noch der entsprechende CRON-Job eingerichtet werden, denn damit die aktuelle IP regelmäßig überprüft und gegebenenfalls aktualisiert wird, muss das Programm auch regelmäßig aufgerufen werden. Diese Aufgabe erledigt ein CRON-Job.

Das geht mit dem Befehl

crontab -e

Damit wird die Tabelle mit den Cron-Jobs (crontab) im Standard-Text-Editor geöffnet.
Damit das Programm z.B. alle 10 Minuten automatisch gestartet wird, muss diese Zeile hinzugefügt werden

*/10 * * * * /home/pi/spdnsu [--configfile=/path/to/spdnsu.conf]

Der Pfad „/home/pi/spdnsu“ muss natürlich noch an Ihr System angepasst werden. Und wenn der Pfad zur Config-Datei nicht /etc/spdnsu.conf ist, muss dieser mit übergeben werden.

Eine detailliertere Beschreibung von cron gibt es hier

Jetzt noch die Datei abspeichern und Fertig!!

Bei Fragen, Anmerkungen oder Problemen einfach einen Kommentar hinterlassen.

102 Gedanken zu “spdns Dynamic DNS Update-Client

  1. Moin,

    die korrekte Domain zur Anzeige der eigenen IP ist „checkip.spdns.de“. Die anderen Hosts hatten nur funktioniert, weil es der Default-VHost war. Das haben wir umgestellt, daher die Verwirrung.

  2. Tach auch, kann es sein das Token nicht korrekt verarbeitet werden? Mit dem Account-PW klappt es, mit einem extra generiertem Token (eigentlich eine super Sache!) leider nicht.

    Lg Jack

    • Hey Jack

      Ehrlich gesagt hab ich mich mit diesem Token noch nicht beschäftigt. Danke für den Hinweis.
      Es kann sein, dass das Token in der Update-URL stehen und als Klartext gesendet werden muss. Ich mach ja erst das Base64-Encoding mit Nutzernamen und Passwort und schicke es dann mit.
      Ich werde das mal klären und die neuen Sourcen dann hier rein stellen. Schau einfach in ein paar Tagen nochmal vorbei.

      Bjoern

    • Hey Jack

      Hat ein wenig länger gedauert, ich hab gerade viel um die Ohren.
      Der Fehler lag darin, dass bei Einsatz des Tokens nicht der Nutzername, sondern der Host eingetragen werden muss.
      Das hatte ich völlig übersehen – Danke an Erik für den Hinweis.

      Die neuen Dateien stehen jetzt zum Download bereit.

      Gruß Bjoern

  3. Update 22.09.14

    Nach dem Hinweis von Jack, dass die Update-Token nicht unterstützt werden, habe ich das Programm angepasst, so dass das jetzt auch funktioniert.
    Gleichzeitig habe ich die Update-Url von SPDNS „update.spdns.de“ korrigiert.

    Wer die alte Version weiter nutzen und trotzdem mit Update-Tokens arbeiten möchte, muss in der Config-Datei den Nutzernamen mit dem Hostnamen und das Passwort mit dem Update-Token ersetzen.

    Zu Update-Tokens siehe Artikel Update-Tokens von Securepoint.

  4. Moin Björn,

    mir gefällt das kleine Tool und ich nutze es auf dem Raspi. Ich habe ein paar Änderungen am Source gemacht die ich gerne zurückgeben würde. Kann man dir auch eine Mail schicken? Impressum habe ich keines gefunden ^^

  5. Hi,
    vielen Dank für das fast nützliche Programm. Fast nützlich bei mir, da ich mich mit DS-Lite rumschlagen darf und bisher nur die vierstellige IP übermittelt wird. Gibts einen Trick wie ich das auch mit einer sechsstelligen schaffe?
    Schönes Wochenende!

    • Moin

      Wenn du eine IP-V6 Adresse meinst, musst du „nur“ die RegEx in der Funtion „checkIP“ umbauen. Das steht noch auf meiner ToDo-Liste, aber leider sind regular Expressions so gar nicht mein Spezialgebiet. Ich hab mir die hier zusammengebaut nach den Anleitungen auf dieser Seite http://www.zytrax.com/tech/web/regex.htm.

      Aber vielleicht kommt ja hier jemand vorbei, der helfen kann. Sonst kannst du auch im Netz suchen. Ein paar Anleitungen waren dort auch zu finden.

      Wenn du das hin bekommst, werd ich den Code gerne erweitern, so dass das Programm mit beiden klar kommt.

      Gruß Bjoern

  6. Hi Namensvetter,
    danke für das Programm, ich musste es ja gleich mal ausprobieren. Wenn ich aber meine Config-Datei nicht in /etc habe sondern direkt daneben und dann mit ./spdnsUpdater –configfile ./spdnsu.conf aufrufe, bekomme ich „Speicherzugriffsfehler (Speicherabzug geschrieben)“
    Das selbe, wenn ich den absoluten Pfad angebe. Vielleicht kannst du da noch mal dran?
    Viele Grüße

    • Klar .. mach ich natürlich .. Ich komme aber erst morgen dazu.

      Aber noch kurz zur Info?
      Wenn du die Konfig in /etc/ hast läuft es?
      Und worauf hast du es denn laufen?

      Gruß Bjoern

        • Ah, OK.

          Ich fürchte, dann wirst du dir leider die Sourcen runter laden und selbst kompilieren müssen. Die Anleitung dazu steht auch im Artikel weiter unten.
          Die Datei ist nämlich auf einem Raspberry für Raspberrys, also ARM-Prozessoren kompiliert worden, und die haben eine etwas unterschiedliche libc. Ich denke mal, dass es deshalb bei der Parameterübergabe mit –configfile knallt.
          Auf meinen Pi’s konnte ich den Fehler nämlich nicht nachvollziehen.

          Gruß Bjoern

          • Leider ist es tatsächlich so gewesen, dass ich es direkt selbst kompiliert habe… Ich glaube auch kaum, dass das ARM-Kompilat auf einem x86 laufen würde, schon allein wegen des unterschiedlichen Prozessor-Befehlssatzes…
            Aber es läuft ja auch so, wenn ich es in dem Standard-Pfad lege.

          • Schade – ich hatte ehrlich gehofft, dass es so einfach wäre 🙂
            Dann muss ich doch nochmal nachsehen – aber da komme ich im Moment nicht wirklich zu.

            Gruß Bjoern

  7. Hallo zusammen,

    bin dringend auf der Suche nach genau so einem Tool. Leider bekomme ich es auf dem Raspberry Pi nicht zum laufen.

    Beim Schritt
    Einen Ordner im home-Verzeichnis erstellen mit
    mkdir /home/YourUserName/updater

    Bekomme ich die Fehlermeldung dass es dieses Verzeichnis nicht gibt.

    An welchen Stellen weicht denn die Anleitung ab?

    Würde mich sehr freuen wenn ich das Tool irgenwie auf meinem Pi zum laufen bekomme.

    Gruß Daniel

    • Hey Daniel

      Du musst den Teil mit YourUserName mit einem existierenden Nutzernamen ersetzen .. Auf dem Raspberry ist das dann der User „pi“ .. falls du keine weiteren Nutzer angelegt hast.
      Also wäre der Befehl für dich
      mkdir /home/pi/updater

      Gruß Bjoern

  8. Hey.. danke für die flotte Antwort. Hatte ich ganz übersehen.
    Bin jetzt etwas weiter , bekomme aber beim Punkt

    ./home/pi/updater/spdnsu

    Den Hinweiß :
    pi@raspberrypi ~ $ ./home/pi/updater/spdnsu
    -bash: ./home/pi/updater/spdnsu: No such file or director

    Wo kann ich noch was falsch gemacht haben?

    Gruß Daniel

  9. Na das sieht so aus, als ob entweder die Datei, das Verzeichnis oder Beides noch nicht da ist.
    Also wenn du mit

    mkdir /home/pi/updater

    das Verzeichnis angelegt hast, musst du die Datei spdnsu noch dort rein kopieren ..

    Das sollte schon helfen 🙂

    Gruß Bjoern

  10. Hallo,
    Ich habe ein raspi 2 mit ubuntu Mate.
    Ich habe das Binary herunter geladen und auch alles wie du es in der anleitung beschrieben hast durchgeführt.

    Allerdings werden keine Log dateien erstellt wenn ich die spdnsu ausführe. Woran liegt das? In der conf habe ich den pfad für die logdatei angepasst.

    • Hallo Florian

      Also wenn da da einfach nur keine Log-Datei erscheint, könnte es einfach schon daran liegen, dass vielleicht der Pfad zur Log-Datei falsch ist oder du keine Schreibrechte an dem Ort hast, wo die Log-Datei geschrieben werden soll.

      Wenn du das Programm in der Konsole aufrufst und etwas stimmt nicht, kämen entweder Fehler in der Konsole oder in der Log-Datei. Allerdings überprüfe ich nicht, ob die Log-Datei schreibbar ist .. das könnte ich in der Tat noch nachholen.

      Ich hoffe, du kommst damit weiter.

      Gruß Bjoern

  11. Hallo Bjoern,

    habe das Skript soweit jetzt am laufen. Eine letze Frage hätte ich allerdings noch :).
    Wie kann ich denn das Update Intervall ändern?

    habe jetzt einfach statt */10 * * * * /home/YourUserName/updater/spdnsu */5 * * * * /home/YourUserName/updater/spdnsu

    eingegeben.. geht das so?

    Beste Grüße

  12. hm.. der Job wird aber leider weder mit den 10 min noch mit den 5m ausgeführt und die IP wird nur aktualisiert wenn ich den Raspberry Pi neustarte.

  13. Hallo,

    die Anleitung hat mir sehr geholfen. Allerdings bekomme ich in der Log-Datei immer eine Fehlermeldung
    Fri Sep 11 23:05:12 2015 – The IP didn’t change since the last update.
    Fri Sep 11 23:05:12 2015 – An invalid username and / or an invalid password has been entered.

    ich verwende Token und habe somit unter user ebenso den Host angegeben

    wenn ich ./home/pi/updater/spdnsu ausführen möchte, bekomme ich auch folgende Meldung -bash: ./home/pi/updater/spdnsu: No such file or directory

    auch aktualisiert sich die log-Datei nicht durch den cronjob, nur wenn ich den RaspPi neu starte.

    Was mache ich falsch

    Gruß
    Andreas

    • Hey Andreas

      Ich denke, die Fehlermeldung
      Fri Sep 11 23:05:12 2015 – The IP didn’t change since the last update.
      kommt daher, dass die Datei spdnsuIP.cnf nicht angelegt werden konnte. Check bitte mal, ob die Datei vorhanden ist.

      Auch wenn du Tokens verwendest musst du unter user deinen Benutzernamen eingeben – das sollte das Problem beheben.

      Wenn ./home/pi/updater/spdnsu nicht funktioniert schau bitte mal, ob die Datei ausführbar ist, also wenn du auf der Konsole ls -l eingibst, sollte das ungefähr so aussehen:
      -rwxr-xr-x 1 root root 19095 Dez 27 2014 spdnsu*
      Wichtig ist da das x

      Ich hoffe, das hilft dir weiter

      Gruß Bjoern

  14. Hallo,

    Den Link, den Du oben genannt hast (http://wiki.securepoint.de/index.php/SPDNS_Update-Tokens) sagt aus, das unter Benutzername ebenfalls der Hostname eingegeben werden soll

    Im DynDNS-Client werden die Zugangsdaten jetzt wie folgt hinterlegt (alle anderen Einstellungen können der SPDNS FAQ entnommen werden):
    Hostname = Hostname
    Benutzername = Hostname
    Kennwort = Update-Token

    Die Datei/Ordner Rechte habe ich nochmal geprüft. Die sind alle OK.
    Es wird nur bei Neustart des RaspPi eine Log Datei angelegt, bzw. aktualisiert.

    Ich weiss jetzt nicht weiter Werde es morgen nochmal versuchen

    • Hallo Andreas

      Ja, sorry. Stimmt – ich habe gerade nochmal in den Code geschaut: wenn tokens verwendet werden nutze ich den Nutzernamen gar nicht, sondern verwende den Host.
      Daran kann es also wirklich nicht liegen.

      Sorry!

      Hast du mal geschaut, ob die Datei spdnsuIP.cnf angelegt wurde?

      Ich schreibe übrigens nicht ständig in die Log-Datei. Nur bei Fehlern oder wenn die IP-Adresse upgedatet wurde.

      Wenn du Token nutzt, hast du in der Konfig-Datei isToken=1 gesetzt ?

  15. Das Ganze ist wesentlich simpler mittels Bash-Skript zu lösen.

    Einfach per Cron-Job laufen lassen:

    #!/bin/bash
    #

    # spdns.de external ip update script

    # spdns host vars
    # Hier Host und Token eintragen:
    dns_host=“meinserver.spdns.de“
    dns_token=“abcd-efgh-ijkl“

    # define response file (derived from script file)
    response_file=“$(readlink -f $0).response“

    # get external ip
    external_ip=`wget „http://checkip4.spdns.de“ -O „-“ –quiet`

    # send update request
    spdns_response=`wget –user=$dns_host –password=$dns_token „https://www.spdns.de/nic/update?hostname=$dns_host&myip=$external_ip“ -O „-“ –quiet`

    # display response
    [[ ! „`/usr/bin/tty`“ == „not a tty“ ]] && echo „“
    [[ ! „`/usr/bin/tty`“ == „not a tty“ ]] && echo „spdns update response: $spdns_response“
    [[ ! „`/usr/bin/tty`“ == „not a tty“ ]] && echo „“

    # save result into file
    echo „$spdns_response“ > $response_file

    # done
    exit 0

  16. [HOST]
    host = host1.spdns.de
    user = username
    pwd = password
    isToken = 1

    [HOST]
    host = host2.spdns.de
    user = username
    pwd = password
    isToken = 1

    was genau muss hier ich eingeben?

    ich habe mich da jetzt angemeldet auf der seite https://www.spdns.de

    wie gehe ich jetzt vor?

    • Hey Sven

      Also es gibt ja für SPDNS zwei Möglichkeiten für das Update:

      1. Normal mut Nutzernamen und Passwort
      Dann ist:
      host: Deine Adresse(URL), die du bei spdns angemeldet hast
      user: dein Nutzername, den du bei spdns hast
      pwd: dein Passwort bei spdns
      In dem Fall ist isToken=0 zu setzen.

      2. Mit Update-Token
      Schau dir dazu auch mal noch den Artikel hier an: http://wiki.securepoint.de/index.php/SPDNS_Update-Tokens
      Dann ist:
      host: Deine Adresse(URL), die du bei spdns angemeldet hast
      user: kann frei bleiben
      pwd: das bei spdns generierte Update-Token

      Die Methode mit dem Update-Token ist die bevorzugte, weil sichere Methode.

      Wenn noch Fragen sind, melde dich einfach noch mal

      Gruß Bjoern

  17. nebenbei, wie starte ich das programm?

    als beispiel
    ./spdnsu [–configfile=/path/to/spdnsu.conf]

    Fehlermeldung: „-su: /spdnsu: Datei oder Verzeichnis nicht gefunden“
    das gleiche hatte ich bei dem befehl davor auch schon

    ./home/YourUserName/updater/spdnsu

    • Hallöchen nochmal

      Wenn du dem Beispiel gefolgt bist, musst du bei ./home/YourUserName/updater/spdnsu noch den Teil „YourUserName“ mit deinem eigenen Nutzernahmen – beim Raspberry ist das in der Regel „pi“ oder auf der Banane vermutlich „sven“ oder „root“ ersetzen.

      Dann sollte es klappen

      Gruß Bjoern

      • zsh: datei oder Verzeichnis nicht gefunden: ./home/root/updater/spdnsu
        kommt als fehlermeldung immer noch….

        ich will endlich auf meinen server von außerhalb zugreifen 🙁

  18. erstmal danke björn, muss ich mal die tage testen. habe eine andere frage,

    und zwar ein kollege von mir hat es auch eingerichtet… er bekommt aber keine verbindung, wenn er den erstellten link bei spdns.de eingibt…

    kann es sein, weil der server owncloud zum beispiel unter https://IP-Addresse/owncloud
    liegt? sprich die seite spdns.de leitet ja nur an die ip weiter, aber unter der ip ist es ja quasi nicht zu erreichen?

  19. Hallo Bjoern,
    nun habe ich alles schön eingerichtet und beim Start ./spnsu wird auch die spdnsuIP.cnf erzeugt. Ich habe die Variante mit Token(1) verwendet und die bei spdns.de erzeugte TOKEN als Passwort eingetragen. Nun ist mir aufgefallen, daß die Aussage :

    Das Token für diesen Host wurde am 29.10.2015 um 19:16:47 Uhr erzeugt und seitdem 1 mal benutzt – zuletzt am 29.10.2015 um 19:59:33 Uhr

    nicht mit dem Start von ./spnsu ausgelöst wurde sondern mit einem
    ping auf den Host xx-xx.spdns.de . Kann es sein,daß der Start mit ./spnsu gar nicht stattfindet ? Allerdings gibt es auch keine Fehlermeldung – Fazit = es wird keine Log erzeugt – auch nicht nach reboot vom raspi (wie weiter oben beschrieben)

    • Hey Peter

      Das sollte völlig normal sein, denn es wird nur ein Request an spdns geschickt, wenn sich die IP-Adresse geändert hat. Vorher checkt er lediglich alle x Minuten, ob sich was geändert hat.

      In der Regel sollte dein Rechner nur 1mal am Tag einen Update-Request an spdns senden und das auch protokollieren.

      Ist also alles in Ordnung 🙂

      Gruß Bjoern

  20. Hi Bjoern,
    erstmal Hut ab für den Aufwand, den du dir hier machst!

    jetzt mein Problem: ich bekomme die Meldung, wenn ich spdnsu direkt ausführen will:
    „Error reading the config file in /etc/spdnsu.conf“

    mein Config-File schaut folgendermaßen aus (es ist in /etc):
    „““
    # path of log file. File must be writeable.
    # logfile = /home/pi/spdnsu.log

    # the name of the file, where the current IP is stored. File must be writeable.
    # ipFile = /tmp/spdnsuIP.cnf

    [HOST]
    # URL for the Host to be updated, e.g. update.spdns.de (SPDNS) or dynupdate.no-ip.com (No-IP).
    updateHost = update.spdns.de
    host = kalmero.spdns.org
    user = kalmero
    pwd = *********************+
    isToken = 0

    [HOST]
    # URL for the Host to be updated, e.g. update.spdns.de (SPDNS) or dynupdate.no-ip.com (No-IP)
    #updateHost = dynupdate.no-ip.com
    #host = host2.no-ip.com
    #user = user2
    #pwd = blah
    #isToken = 0
    „““
    Wär cool, wenn du kurz mal drüber schauen könntest, ob ich irgendwas elementares übersehen habe.
    vielen Dank dir!
    Maxi

    • Hey Maxi

      Also die Config sieht erstmal völlig OK aus!
      Sehe keinen Fehler.

      Was du noch machen könntest ist, mal explizit eine Log-Datei angeben. Die muss beschreibbar sein. Dann könntest du das Programm nochmal von Hand starten und in der Log-Datei mal nachsehen, ob dort noch irgendwelche Fehlermeldungen auftauchen. Dort schreibe ich dann die kompletten Fehlermeldungen rein. Vielleicht finden wir so raus, was ihm an der Datei nicht passt 🙂

      Gruß Bjoern

      • Hi Bjoern!
        danke für den Tipp, hab ich gemacht. Hier ist die Ausgabe, nachdem ich das Programm einmal manuell mit dem Kommano „./spdnsu“ gestartet habe:
        „““
        Mon Feb 1 07:40:34 2016 – ‚host‘ is not specified, check the config file
        Mon Feb 1 07:40:34 2016 – Error reading the config file in /etc/spdnsu.conf
        „““
        irgendwelche Ideen, woran das liegen könnte?

        • Moin

          Also das Einzige, was mir noch auffällt und was du noch versuchen könntest: entfern bitte mal die Leerzeichen vor und nach dem ‚=‘ und entfern mal den Kommentar.
          Also

          [HOST]
          updateHost=update.spdns.de
          host=kalmero.spdns.org
          user=kalmero
          pwd=*********************
          isToken=0

          Ich bin mir ziemlich sicher, dass ich das eigentlich berücksichtigt habe, aber einen anderen Unterschied zu meiner Config sehe ich da gerade echt nicht mehr.

          Gruß Bjoern

          • Hi Bjoern,
            es funktioniert jetzt, allerdings lag es nicht an den Leerzeichen.
            Was ihn offenbar gestört hat, war, dass da unter dem zweiten [HOST] alles auskommentiert war. Ich habe nun alles, was ich nicht brauche, gelöscht und fertig!

            Danke nochmal für deinen Support!
            Maxi

          • Hey Maxi

            Super und danke fürs Feedback.
            Da hätte ich natürlich auch drauf kommen können 🙂
            Werde das bei Gelegenheit vielleicht mal nachbessern.

            Gruß Bjoern

  21. Bei mir klappt es leider auch nicht … meine Config ist wie folgt:
    /etc/spdnsu.conf
    ——————————————-
    logfile = /home/odroid/updater/spdnsu.log
    ipFile = /home/odroid/updater/spdnsuIP.cnf
    [winniehome]
    updateHost = checkip.spdns.de
    host = winniehome.spdns.de
    user = user1
    pwd =
    isToken = 1
    ——————————————-
    — Error reading the config file in checkip.spdns.de
    and in the Logfile it always says:

    Fri Jan 29 15:04:34 2016 – ‚host‘ is not specified, check the config file
    Fri Jan 29 15:04:34 2016 – Error reading the config file in checkip.spdns.de

    (tried update.spdns AND checkip.spdns.de … same result)

    • Hey

      Problem erkannt.
      Du musst in der Config
      [winniathome] durch
      [HOST]

      Ersetzen. Dann sollte das schon funktionieren. Das ist ein fester Begriff, nach dem in der Datei gesucht wird.

      Gruß Bjoern.

  22. toller Guide

    habs auf meiner QNAP in nem Ubuntu Container laufen

    laut Anleitung nochmal im Ubuntu Container kompiliert damits auf x86 läuft und alles ist gut 🙂

    Danke dafür 😉

  23. Hallo Bjoern,

    vielen Dank für deine ausführliche und verständliche Anleitung – ich hatte sehr viel Freude daran sie auf meinem Raspberry Pi2 umzusetzen!

    Beim letzten und entscheidensten Schritt bekomme ich jedoch immer eine Fehlermeldung: -su: ./home/ts3/updater/spdnsu: No such file or directory

    Die Kommentare habe ich alle studiert und konnte mit den Hinweisen den Fehler einfach nicht finden:
    – die korrekten Verzeichnisse existieren
    – die spdnsu ist kopiert / existiert
    – die berechtigung ist gesetzt (chown und chmod als root ausgeführt)
    -> -rwxr-xr-x 1 ts3 ts3 19095 Dec 28 2014 spdnsu
    – spdnsuIP.cnf wurde angelegt
    -> -rw-r–r– 1 ts3 users 24 Apr 26 19:05 spdnsuIP.cnf
    – habe es mit dem pi user und einem neu erstellten user versucht

    Ich werde einfach nicht schlau daraus, was das Problem sein soll.

    Vielen Dank und Gruss
    Tobster

    • Hey Tobster

      Also wenn du das so aufrufst

      -su: ./home/ts3/updater/spdnsu
      

      könnte das Problem der Punkt am Anfang sein, also das ./ vor home.
      Der Punkt am Anfang bedeutet, dass er im aktuellen Verzeichnis anfängt, zu suchen.
      Versuch das mal, ohne Punkt, also

      -su: /home/ts3/updater/spdnsu
      

      Wenn das nicht hilft, würde mich mal interessieren, was passiert, wenn du das Programm direkt aus dem Verzeichnis startest.
      Also:

      cd /home/ts3/updater/
      ./spdnsu
      

      Bitte beachten, dass in diesem Fall der Punkt wieder davor gehört.

      Wenn auch das nicht geht, meld dich einfach noch mal.

      Gruß Bjoern

  24. Hallo Björn,
    vielen Dank für die ausführliche Beschreibung! Die Einrichtung hat wunderbar geklappt. Allerdings habe ich die folgende Warnmeldung bei Aufruf der Admin-Seite meines Hosts bekommen:

    „Bitte verwenden Sie als Update-Server in Ihrem Client „update.spdyn.de“ (Aktuelle Einstellung: update.spdns.de)“

    Wie kann ich den Update-Server einstellen? Gibt es dafür einen speziellen Eintrag in der spdnsu.conf Datei?

    Vielen Dank,
    Dirk

    • Hey Dirk

      OK, das ist neu .. per default ist der damals gültige „update.spdns.de“ eingestellt.
      Du kannst das aber in der spdnsu.conf überschreiben mit dem Parameter „updateHost“

      Das müsste dann in etwa so aussehen:
      [HOST]
      updateHost = update.spdyn.de
      host= ******
      user=******
      pwd=********
      isToken=

      Das sollte dann funktionieren.

      Gruß Bjoern

  25. # path of log file. File must be writeable.
    logfile = /home/pi/updater/spdnsu.log

    # the name of the file, where the current IP is stored. File must be writeable.
    ipFile = /home/pi/updater/spdnsuIP.cnf

    [HOST]
    # URL for the Host to be updated, e.g. update.spdns.de (SPDNS) or dynupdate.no-$
    updateHost = update.spdyn.de
    host = xxx.spdns.de
    user = xxx
    pwd = xxx
    isToken = 1

    Hallo bei mir wird keine log Datei erstellt, die cnf Datei schon mit der aktuellen IP.
    Auf der Website wird auch keine Aktualisierung angezeigt. Eine Fehlermeldung gibt es auch nicht.

    • Hallo mbi

      OK, wenn die Datei mit der IP erstellt wird, scheinen die Pfade ja zu stimmen.
      Die Config-Datei sieht auch soweit gut aus.
      Ich sehe, dass isToken = 1 eingestellt ist .. benutzt du das Update-Token oder gehst du über Nutzernahme/Passwort?
      Ist die Config-Datei unter /etc/spdnsu.conf gespeichert?

      Ansonsten sehe ich erstmal keine Fehler.

      Gruß Bjoern

  26. Wäre es denn möglich das auch auf einer VU Plus Box mit Enigma2 (ich glaube mipsel) zum Laufen zu bringen?
    Gruss Robi

    • Hey Robi

      Musste erstmal schauen, was das ist. 🙂
      Also ich denke schon, dass das möglich ist. Es wird zwar vermutlich nicht möglich sein, den Code auf der Box selbst zu kompilieren, aber du kannst es ja auf einer anderen Linux-Maschine machen und dann übertragen. Wie man den Code kompiliert, steht ja in der Anleitung .. Wie man mit gcc Cross-Compiled musst du leider googlen .. das kann ich dir so aus dem Kopf auch nicht sagen.

      Gruß Bjoern

  27. Huhu Bjoern,

    bei spdns/spdyn hat sich die Update URL geändert. Habe ich so im Sourcecode auch eingetragen (update.spdyn.de), aber das kleine Programm will einfach nicht 🙁

    Gruß Mark

  28. Hallo Bjoern!

    Vielen Dank für das hilfreiche Tool!

    Leider funktioniert es nicht zuverlässig bei mir.
    Der Crontab wird nicht ausgeführt…

    Was kann ich tun, damit er alle 10 Minuten ausgeführt wird?

    • Hey OK

      Woran machst du das fest, dass der Cron-Job nicht ausgeführt wird?
      Wenn du dich auf das Log-File beziehst: dort schreibe das Programm nur rein, wenn sich die IP geändert hat und wenn das Programm eine Aktualisierung durchgeführt hat. Das sollte in der Regel 1mal in 24 Stunden vorkommen.
      Ansonsten siehst du dort nichts .. es sei denn, es ist ein Fehler aufgetreten.

      Gruß Bjoern

  29. Hallo Bjoern!

    Ich dachte, dass es so sei weil kein Eintrag im Log-File stand. Alle 10 Minuten ist übrigens laut der Hilfe respektive FAQ von Spdyn.de nicht sinnvoll, da bei zu häufigen Anfragen (ohne Änderung der Ip Adresse) der Anfragende blockiert wird. Habe das Update-Intervall daher auf jede Stunde gestellt (mindestens 30 Minuten Pause ist die Empfehlung).

    Danke dir!

    • Hey OK.

      Du kannst das ruhig auf 10 Minuten lassen. Damit stellst du nur ein, in welchem Intervall die IP überprüft wird. Das ist unbegrenzt. Ein Request mit einem IP-Update wird nur an SPDNS geschickt, wenn sich die IP geändert hat.

      Gruß bjoern

  30. Hallo Bjoern!

    leider bekomme ich es nicht zum Laufen. Auf das Verzeichnis (rapberry) etc darf ich nicht schreiben. Also habe ich die .conf in das Updater Verzeichnis gelegt.
    Das Ganze dann mit :
    ./home/pi/updater/spdnsu –configfile=./home/pi/updater/spdnsu.conf.
    Aber immer die Meldung Error reading the config file in etc/spdnsu.conf

    Wenn ich direkt in das Updater Verzeichnis gehe und spdnsu aufrufe bekomme ich die Fehlermeldung: No such File
    obwohl laut dir die Datei vorhanden ist.

    Was mach ich falsch ?

    Was muss ich in den Cronjob eintragen (Fullpath)?

    Grüße und Besten Dank

    Marcus

    • Hey Markus

      Da sind 2 kleine Fehlerchen in deinem Aufruf:
      1. lass die Punkte am Anfang weg
      2. vor das congfile kommen 2 Minus-Zeichen (sorry, das sieht man auf der Seite echt schlecht).
      Also der Aufruf:
      /home/pi/updater/spdnsu –configfile=/home/pi/updater/spdnsu.conf

      Sollte dann funktionieren.

      Wenn du die Config-Datei doch nacch /etc kopieren möchtest, muss du das mit

      sudo cp /home/pi/updater/spdnsu.conf /etc/

      Damit erhältst du kurz root rechte.

      Ich hoffe, damit kommst du weiter

      Gruß Bjoern

  31. Hallo Bjoern,

    danke für die schnelle Antwort. Habe jetzt laut deiner Hilfe die CONF-Datei nach ETC verschoben.
    Das mit der Parameterübergabe hat leider nicht funktioniert (Invalid comand line option specified)

    Werde gleich mal testen ob es mit dem Update klappt.

    Also noch mal vielen Danke für deine Mühe

    Marcus

    • Hey Markus

      Ich hatte leider in der Kommando-Zeile einen kleinen Typo eingebaut .. irgendwie vermurkst das WordPress hier die Eingabe, wenn man zwei Minuszeichen hinter einander packt.
      Daher nochmal:
      /home/pi/updater/spdnsu --configfile=/home/pi/updater/spdnsu.conf

      Damit sollte es jetzt eigentlich klappen ..

      Bjoern

    • Ich schreibe nur ins Log-File, wenn ein Fehler auftritt oder wenn sich die IP geändert hat und upgedated wurde ..

      Allerdings sollte er beim ersten Aufruf etwas ins Log-File schreiben, da ja noch keine IP gespeichert ist ..

  32. hallo,

    danke für die info, habe darauf basierend ein bash shell script geschrieben,
    nicht elegant, funktioniert aber, ist ausbaufähig 🙂

    #!/bin/bash

    my_host=“deinhost.spdns.eu“
    user=“username“
    pass=“passwort“
    datum=`date +%A,%d.%m.%Y_%H:%M`

    # externe ip holen
    ip=`curl -4 -s checkip.spdyn.de`

    # das file .ext_ip4 merkt sich die aktuelle ip
    if [ -f /root/.ext_ip4 ]
    then
    alt_ip=`cat /root/.ext_ip4`
    if [ „$alt_ip“ == „$ip“ ]
    then
    # ip unverändert, abbruch
    logger „ip4 unverändert am $datum“
    exit 1
    else
    echo „ip4 verändert, wird aktualisiert am $datum“
    # aktualisierung, hier könnte man den Rückgabewert good? auswerten
    logger `curl -u $user:$pass -4 -s „http://update.spdns.de/nic/update?hostname=$my_host&myip=$ip“`
    #ip merken
    echo $ip > /root/.ext_ip4
    fi
    else
    # erster lauf, keine .ext_ip4 da…
    echo $ip > /root/.ext_ip4
    logger `curl -u $user:$pass -4 -s „http://update.spdns.de/nic/update?hostname=$my_host&myip=$ip“`
    fi

  33. Hallo,

    leider sind die mit

    logger `curl

    beginnenden zeilen umgebrochen worden, das

    /nic/update?hostname=$my_host&myip=$ip“`

    gehört zur logger `curl zeile.

  34. Hallo Bjoern,

    habe das ganze jetzt auf UpdateToken umhestellt. Jetzt hat es beim manuellen Update funktioniert. Allerdings ist mir noch nicht ganz klar was ich unter UpdateHost eintragen muss. Irgendwie beim Probieren habe ich das einigemale umgestellt.
    und weiß nicht mehr was zu Erfolg geführt hat.

    Hoffe, der Cronjob läuft. Kann ich das irgendwie sehen?

    Grüße

    Marcus

    • Hey Marcus

      Das sieht gut aus! Ich hab gerade noch mal in meine Konfig rein geschaut. Ich habe bei user meinen normalen Nutzernamen stehen, aber ich glaube, den nutze ich beim Update-Token gar nicht. Aber sonst scheint alles zu stimmen.

      Um zu sehen, ob der Cron läuft, kannst du einfach mal deinen Router kurz ausschalten, damit er eine neue IP bekommt und dann in deinem Account bei SPDNS schauen, ob die IP aktualisiert wird.

      Gruß Bjoern

  35. Hallo!
    komm mal gleich zur Sache!
    Ich will auch gerne meinen Account bei SPDNS.DE (SPDYN.DE) über so ein kleines teil aktualisieren.
    Mach ich jetzt ja mit einen Laptop, das leider immer eingeschaltet sein muss.
    Würde es gern mit einem Raspberry Pi umsetzten das teil klingt interessant.
    Wäre der „Vilros Raspberry Pi 3“ dafür tauglich?
    Gefunden hab ich ihn da: https://www.amazon.de/Vilros-Raspberry-Pi-Complete-Kit-Enthalt/dp/B01DC6MKAQ/ref=sr_1_2?ie=UTF8&qid=1482767257&sr=8-2&keywords=raspberry+pi

    Enthält- Raspberry Pi 3 Model B–1GB
    Raspberry Pi 3 Gehause Case–klar transparent
    16GB Micro SD Card Voristalliert mit „NOOBS‘
    Europaischen (EU) USB Netzteil Labegerat (2.5 AMP)
    HDMI Kabel–Heatsink fur Raspberry Pi (1 Big 1 Small)

    Ich kenne mit mit so teilen leider nicht aus 🙁

    Danke für eure Unterstützung
    Timi_Who

    • Moin Timi_Who

      Natürlich ist der dafür mehr als tauglich .. Wenn du nur Deine IP aktuell halten willst, ist der dafür sogar schon überdimensioniert 🙂
      Aber der Update-Client hier läuft auch auf diesem Raspberry. Wenn du bei der Installation Hilfe brauchst, sag einfach Bescheid.

      Gruß Bjoern

  36. Hallo Bjoern!

    Danke für die rasche Antwort!
    Ja ich weis das es etwas überdimensioniert ist, aber vielleicht ergeben sich ja noch ein paar andere „Projekte“
    Auf das Angebot für die Installations Unterstützung werde ich sicher zurückkommen, Linux ist nicht so mein Ding.

    Frohe Weihnachtsfeiertage und guten Rutsch euch allen.

    LG Timi_Who

  37. Hallo Bjoern!

    Wollte Dir mitteilen das Hardware eingetroffen ist und sich der „spdns Dynamic DNS Update-Client“ mittels der Anleitung hier und etwas WWW ohne große Probleme einrichten hat lassen!

    Vielen dank für das tolle Tool!!!!!

    Timi_Who

  38. Mein Raspi meldet eine veraltete IP-Adresse an SPDNS, obwohl über die Seite checkip4.spdyn.de die korrekte IP angezeigt wird. In der spdnsuIP.cnf wird ebenfalls eine veraltete IP-Adresse angegeben?!? Wenn ich die Datei lösche und den Check wiederhohle, wird die Datei spdnsuIP.cnf neu angelegt, aber mit der veralteten IP-Adresse…

    Das gleiche Problem habe ich, wenn ich das script von x29a verwende….

    Was kann das sein???

  39. Noch ein Nachtrag,

    mit dem Befehl wget checkip4.spdyn.de erhalte ich eine andere IP-Adresse, wie wenn ich im Browser die Seite checkip4.spdyn.de öffne. Ist das ein cache-Problem?

    Gruß, Marco

  40. Hallo,
    könnte man das Script an passen ?

    16.04.2017 14:35:23 Bitte verwenden Sie als Update-Server in Ihrem Client „update.spdyn.de“ (Aktuelle Einstellung: update.spdns.de)
    Danke

  41. Hi,

    bei mir funktioniert das Script nicht mit 3 [HOST]-Eintraegen.

    Gibt es da was Spezielles zu beachten?

    Danke.

    Gruss

    Ralf

    • Hallo Ralf,
      Nein, eigentlich gibt es da nichts weiter zu beachten. Läuft bei mir mit 5 Einträgen.
      Vielleicht mal die Syntax checken und ins Logfile schauen, ob da was drin steht.

      Gruß vom Bjoern

  42. Moin,

    für IPv6-only Registrierungen scheint das Update nicht bei spnds.de anzukommen. IPv4 ist ok.

    Liegt es wirklich nur an einer RegEx im C Quellkode? Ich würde gerne weiterhelfen, wenn ich mit der Nase auf die Stelle gestossen werden.

    Gäbe es außer mit _spdnsu_ noch eine andere Möglichkeit, manuell die IPv6 mit Token zu aktualisieren? Ein _curl_ Kommandozeilen Aufruf wäre für’s Erste auch gut genug.

    Besten Danke, Axel.

    • Hey Axel
      Sorry für die späte Antwort, ich war im Urlaub.
      Ja, es liegt nur an der RegEx im Code. Den hab ich aber gerade nicht im Kopf bzw. zur Hand. Ich möchte mich aber sowieso in nächster Zeit damit beschäftigen.
      Ansonsten sind hier in den Kommentaren ein paar Shell-Scripte, die das auch leisten sollen. Die hab ich aber selbst nicht getestet.

      Gruß vom Bjoern

Schreibe einen Kommentar