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)

Tags: , , ,

Hinterlasse eine Antwort