Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke

Hilfreiches: DynDNS IP UPdater für das eigene IP System - ohne Verwendung einer Fritzbox

Schön ist das eine Fritzbox auch alternative DynDNS Anbieter und auch eigene Bastelvarianten unterstützt, aber nicht jeder hat eine Fritzbox, oder möchte sie dafür nutzen. Wenn aber ein Raspberry vorhanden ist, kann man das ganze auch damit erledigen lassen.

Dafür brauchen wir mehrere Dateien, den Anfang macht das Bash Scriptwelches wir beispielsweise bei dem Raspberry Pi in den Ordner: /var/www/IPupdate.sh schieben:

Hier drinnen muss der Pfad zu der DynIP Textdatei angeben werden..., weiterhin die Domain wo die Textdatei liegt.

Die url=http://www.MeineDomain.de/ordner/homeIP.txt gibt an wo eure Textdatei des eigenen DynDNS Dienstes liegt, das müsste ihr nach den eigenen VOrlieben anpassen.

Bei "www.MeineDomain.de" tragt ihr eure Domain ein, damit überprüft werden kann ob die Domain überhaupt erreichbar ist.

Bei "ip=$(curl "http://www.MeineDomain.de/ExterneIP.php")" müsst ihr den Pfad zu dem php Script korrekt eingeben, damit auch die externe IP abgefragt werden kann.

Bei der Zeile "curl "http://www.MeineDomain.de/ordner/filename.php?pass=Passwort&meineip="$ip" findet das Updaten eurer IP statt, der Pfad, der Name eurer Datei und das Passwort müssen korrekt eingefügt werden - jeder nennt ja die Sachen anders und jeder hat eine andere Ordnerstruktur - und garantiert hat auch jeder ein anderes Passwort.

#!/bin/bash

#url der DynIP Textdatei
url=http://www.MeineDomain.de/ordner/homeIP.txt

if ping -c 1 www.MeineDomain.de >/dev/null 2>&1
then


#gespeicherte DYN IP auslesen
mip=$( curl --fail --silent --show-error $url )
echo "DYNIP:"$mip

#Eigene externe IP holen
ip=$(curl "http://www.MeineDomain.de/ExterneIP.php")
echo "IP:"$ip

#Wenn IPs unterschiedlich, dann IP Updaten
if ! [ "$mip" = "$ip" ] ; #IPs sind nicht gleich ?
then
#IP auf dem Webspace updaten
curl "http://www.MeineDomain.de/ordner/filename.php?pass=Passwort&meineip="$ip
fi

fi

Jetzt könnte man mittels dieses einfach zu merkenden"Einzeilers": ip=$(curl -s "http://192.168.0.1:49000/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "@external_ip.xml" | grep -Eo "\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>") die eigene Externe IP bei einer Fritzbox ermitteln, aber wir gehen ja davon aus, das wir keine Fritzbox verwenden, also müssen wir uns anders die externe IP beschaffen.

Dafür kommt jetzt das PHP Script: ExterneIP.php zum Einsatz, welches nichts weiter macht als die externe IP zu verraten. Dieses PHP Script kommt NICHT auf euren Raspberry Pi, sondern auf euren externen Webspace.

<?php
echo $_SERVER['REMOTE_ADDR'];
?>

Das war es schon im großen und ganzen. Das obige Bash Scrip auf dem Raspberry Pi lassen wir in einem Cronjob jede Minute einmal aufrufen. Es macht nichts anderes als zu prüfen ob die Domain, wo die gespeicherte IP liegt erreichbar ist. Es sie erreichbar, wird die gespeicherte IP abgerufen. Weiterhin wird mittels der PHP Datei "ExterneIP.php" die externe IP abgerufen und die IPs miteinander verglichen. Sollten die beiden IPs unterschiedlich sein, wird das Script was normalerweile die Fritzbox aufruft vom Raspberry Pi mit den entsprechenden Parametern aufgerufen und die gespeicherte IP aktualisiert.

Hier der passende Cronjob dazu "sudo Crontab -e":

#IP Update bei unterschiedlicher IP
* * * * * /bin/bash /var/www/IPupdate.sh >/dev/null 2>&1

Fortan läuft der IP Update über den Raspberry Pi...

Voraussetzung für Nutzung dieses Updaters ist natürlich die korrekte Grundfunktion des DynDNS Scriptes aus diesem Artikel.

Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke