Fritz Box: IP Adresse mit Script an eigenen Webserver übergeben

Ich besitze eine Fritz Box 7170 die leider keine Crontab hat. Anscheinend wurde das Feature bei der Box weggelassen. Ich bin über LAN1 mit dem Internet verbunden.

Somit mach die Fritz Box über das DynDNS Menü im Router leider keine Updates. Wie es aussieht greifen die nur, wenn die Box per DSL Port mit dem Internet verbunden ist.

Ich wollte ein Script schreiben, welches eine Webseite auf meinen Server aufruft und die IP der BOX einträgt. Leider gibt es keine Crontab mit der man dieses Script ausführen lassen könnte.

Ich habe das ganze Problem so gelöst:

Telnet per angeschlossenem Telefon auf der Fritz Box aktivieren:

#96*7* (Kombination auf dem Telefon tippen)

In das Verzeichnis

/var/tmp/

wechseln und dort eine Datei erstellen und bearbeiten:

vi dynip.sh

Folgender Inhalt gehört in die Datei (YOURSECRETKEY mit einer beliebigen Buchstaben-Zahlen-Kombination ersetzen)

while [ -e /var/tmp/dynip.sh ]; do
wget http://www.domain.tld/dynip.php?key=YOURSECRETKEY -O /dev/null
sleep 3600
done;

Die Datei muss anschließend mit

chmod +x dynip.sh

ausführbar gemacht werden. Jetzt wird Telnet per Tastenkombination auf dem angeschlossenen Telefon mit

#96*8*

wieder deaktiviert.  Erstellt auf eurem Webserver eine Datei namens

dynip.php

und füllt Sie mit folgendem Inhalt

<?php

// Wenn die Datei mit dem geheimen Schlüssel als Parameter aufgerufen wird

if($_GET[key] == ‚YOURSECRETKEY‘) {
//IP Adresse der Gegenstelle ermitteln
$inhalt = $_SERVER[„REMOTE_ADDR“];
//Logdatei schreibend öffnen
$handle = fopen („dynip.txt“, w);
//IP in die Datei schreiben
fwrite ($handle, $inhalt);
//Datei schließen
fclose ($handle);
}

$dateinamen = „dynip.txt“;
//Datei öffnen
$handle = fopen ($dateinamen, „r“);
//IP Adresse auslesen
$inhalt = fread ($handle, filesize ($dateinamen));
//Datei schließen
fclose ($handle);
//IP Adresse im Browser ausgeben
echo „IP Adresse: $inhalt“;

?>

Natürlich müsst ihr im gleichen Ordner eine Datei names

dynip.txt

anlegen und mit

chmod 777 dynip.txt

beschreibbar machen.

Das ganze bewirkt folgendes:

  • Eure Box ruft jede Stunde die PHP Datei eures Webservers auf und hinterlegt die aktuelle IP Adresse
  • Die Datei, die durch wget geholt wurde wird auf der Box automatisch wieder gelöscht, da diese ja nicht (lokal) benötigt wird
  • Durch Aufrufen von http://www.domain.tld/dynip.php seht ihr die aktuelle IP der Fritz Box

Sobald die Box neu gestartet wird, ist die Datei unter /var/tmp nicht mehr verfügbar. Falls ihr die Datei permanent verfügbar machen wollt, beschäftigt euch mit der debug.cfg (am besten danach googlen)

Share your thoughts

3 Replies to “Fritz Box: IP Adresse mit Script an eigenen Webserver übergeben”

  1. Hallo Florian,

    sehr interessanter Artikel. Dieser ist jedoch schon etwas älter.
    Weißt du ob dies mit neueren Fritzboxmodellen wie z.B. 7390 auch noch möglich ist?
    Ich suche dringend nach einer Möglichkeit, mir die aktuelle IP der Box an meinen Webserver zu übermitteln.

    Danke Vorab

    1. Hallo Thomas,

      ich weiß leider nicht ob das bei neueren Boxen noch geht. Meine aktuelle Box kann mit DynDns umgehen. Was du aber machen kannst ist, dir einen Rasperry hinter die Box zu klemmen. Das ganze ist sehr günstig und du kannst andere coole Sachen damit umsetzen.
      Bei mir zeigt er mir auf einem hausinternen Display zum Beispiel den Zustand meiner Server an.

      Gruß Florian

  2. Super-Idee!

    Die Daten schreibe ich in mit Update eine mysql-Datenbank und habe so immer die aktuelle IP meiner Fritzboxen, die ich betreue, falls dyndns mal wieder nicht aktualisiert wurde.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.