Login
Newsletter
Di, 7. Januar 2003, 22:20

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.

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

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten