Externe IP ermitteln und auf einen Webserver laden
Wenn man seinen Rechner per (quasi)-Standleitung, z.B. mit ISDN- oder DSL-Flatrate, ans Internet gehängt hat, kann man im Prinzip jederzeit von außen auf ihn zugreifen.
Von
Sven Blumenstein
Allerdings muß man dafür seine IP-Adresse kennen. In vielen Fällen dürfte es sinnvoll sein, diese Adresse bei einem kostenlosen DNS-Service wie dyndns.org zu registrieren. Wenn das nicht möglich ist, gibt es immer noch die folgende, nicht ganz so bequeme Alternative.
Ich habe ein kleines BASH-Skript geschrieben, welches die externe IP ermittelt, in eine HTML-Seite schreibt und die Seite dann per FTP hochlädt.
#!/bin/bash ######################################################################### # # # upip.sh - Externe IP ermitteln und auf einen FTP Server laden # # Geschrieben von Sven Blumenstein # # # ######################################################################### # # # Ich habe dieses Skript geschrieben, um jederzeit per Internet auf # # die IP meines Linux-Servers und somit den Server selber zugreifen # # zu koennen. Auf die Verwendung eines DynDns-Dienstes wird absichtlich # # verzichtet, da dadurch eine "statische" Adresse entsteht, unter der # # die dynamische IP angesprochen werden kann. Dadurch verschwindet # # der (kleine) Sicherheitsvorteil einer dynamischen IP :) # # # # Kleiner Tip: Das Verzeichniss in welches die html Datei hochgeladen # # wird sollte nach Moeglichkeit per .htaccess Datei geschuetzt werden. # # # # Aus Sicherheitsgruenden enthaelt diese Datei weder Benutzername # # noch Passwort fuer den FTP-Server. Zur Authentifizierung sollte # # man eine Datei namens ".netrc" im Home-Verzeichnis des Benutzers # # anlegen, der dieses Skript ausfuehrt, und folgendes hineinschreiben: # # # # machine yourdomain.com login youruser password yourpass # # # # Nicht vergessen, die Datei per "chmod 0400 .netrc" zu schuetzen! # # Wenn man nun "ftp yourdomain.com" eingibt, werden die Logindaten # # aus der .netrc gelesen. Siehe "man netrc" fuer weitere Infos. # # # ######################################################################### DOMAIN=yourdomain.com DIR=remotedirectory IP_PATH=/home/ip/index.html IP_FILE=`basename $IP_PATH` MACHINE=`hostname` # TIME=`date +%H:%M:%S` if [ `uptime | awk -F, '{print NF}'` = 5 ]; then TIME=`uptime | awk -F, '{print $1}'` else TIME=`uptime | awk -F, '{print $1, $2}'` fi IP=`wget -q -O - http://checkip.dyndns.org | grep Address | awk '{print $4}'` if [ -e $IP_PATH ]; then rm -f $IP_PATH else touch $IP_PATH fi cat << EOF > $IP_PATH IP: $IP $TIME EOF (echo cd $DIR; echo del $IP_FILE; echo put $IP_PATH $IP_FILE; echo bye) | ftp $DOMAIN 1>&2>/dev/null