DDNS mit TomatoUSB (oder DD-WRT) und einer Subdomain von INWX

Mit einer eigenen Domain eine dynamische IP zu mappen ist sehr nützlich. Man könnte natürlich auch auf Dienste wie beispielsweise DynDNS oder easyDNS zurückgreifen, jedoch hat man keine große Auswahl von guten Domainnamen. Daher registrieren wir bei INWX eine Domain unserer Wahl und erstellen uns eine Subdomain mit einer beliebigen IP-Adresse. Um eine Subdomain unter INWX zu erstellen navigieren wir zu: Nameserver » DNS-Eintrag hinzufügen. Bei Name wird der Subdomainname eingetragen und bei Wert eine beliebige IP-Adresse. Der Typ bleibt auf A (A steht für A-Record) stehen. Im nächsten Schritt laden wir das am Ende enthaltene PHP-Projekt auf einen beliebigen Webspace. Für die Benutzung müssen wir noch ein paar Kleinigkeiten abändern: Inklusive der spitzen Klammern mit Werten in der “config.ini”-Datei ersetzen:

; API
[api]
; Beliebiger Zugriffsschluessel, z. B. 123456789abcdef
api_key = 

; Login-Daten fuer INWX-API
[inwx]
; API-URL
url = https://api.domrobot.com/xmlrpc/
; Benutzername fuer INWX-Login
user = 
; Passwort fuer INWX-Login
passwd = 
; INWX bei Domainname
domain= 
; Subdomain der Domain
subdomain = 

[log]
filepath = log/log.txt

Wenn man die “config.ini”-Datei nicht im selben Verzeichnis liegen haben möchte (aus Sicherheitsgründen und so), können wir diese verschieben und den Pfad innerhalb der Datei “DDNSManager.php” in der Zeile 20 ändern:

// ...
protected $iniFile = "config.ini";
// ...

Da die INWX-API nur Mitgliedern zur Verfügung steht, kann ich diese dem Projekt leider nicht hinzufügen. Daher downloadet man sich die PHP-API-Dateien unter http://www.inwx.de/de/offer/api und tauscht die leere Datei “domrobot.class.php”, im Ordner inwx des PHP-Projektes, mit der originalen Datei aus.

Um das Script schließlich mit der Tomato-Firmware (http://tomatousb.org/) anzusteuern navigieren wir zum Punkt Basic » DDNS und tragen einen “Dynamic DNS” mit dem Service “Custom URL” ein.

ddns_tomato

Als Adresse tragen wir den direkten HTTP-Pfad zur “update_ddns.php” ein und hängen “key” (Der Key welcher in der config.ini gesetzt wurde) und “ip” (@IP ist immer die aktuelle IP, welche Tomato generiert) als GET-Variablen mit Werten an:

http://url-zum-webspace.de/update_ddns.php?key=123456789abcd&ip=@IP

Anmerkung zur Log-Datei. Die Logs werden unter “log/log.txt” gespeichert. Das Logging wird mit den KLogger realisiert (Quelle: http://codefury.net/). Download unter GitHub: DDNS-INWX-Updater (PHP)