Wie man den Online-Status bzw. die aktuelle IP-Adresse eines PC’s mit Dynamischer IP-Vergabe ermittelt und
auf einer Homepage zur Ansicht stellt, soll in diesem HowTo beschrieben werden.

Zum besseren Verständnis hier noch eine kleine Übersicht zum Ablauf. Siehe Skizze:


Vorraussetzungen: Linux (in diesem Fall wird von SuSE ausgegangen). 2 PC´s mit je einem eigenen ISDN oder DSL Anschluss Provider mit Webspace und FTP-Zugang funktionierende ISDN oder DSL Konfiguration unter Linux


PC01: Editieren von /etc/ppp/ip-up:

Je nach Anschluss befindet sich im ip-up script eine Section für ISDN (ippp*) bzw. für DSL (ppp*).
Diese wiederrum sind in 2 weitere Sektionen unterteilt:

ip-up) und ip-down)

Je nach Anschluss nun folgendes ans Ende der ip-up) Sektion des Konfigurierten Anschlusses schreiben:

Die HTML-Seite könnte z.B. wie folgt aussehen:

#
# HTML Seite pc01.htm (den echo befehl und die folgenden HTML-Tags in eine Zeile schreiben!!!)
#
echo > /scripte/pc01.htm '<html>
<head>
<title>pc01</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<center>
<table border=0 cellpaddin="5" cellspacing="0" width="90%"><tr>
<td align="left" width="40%" height="19">
<strong>PC01:</strong>
</font>
</td>
<td align="center" width="10%" height="19">
<img src="dot_green.gif" height="15" width="15">
</td>
<td bgcolor="#C0C0C0" align="center" width="25%" height="19">
<font size="2" face="Arial">
<strong>'$LOCALIP'</strong>
</font>
</td>
<td bgcolor="#C0C0C0" align="center" width="25%" height="19">
<font size="2" face="Arial">
</strong>
<a href="http://'$LOCALIP'" target="_new">;Click here</a>
</font>
</td>
</tr>
</table>
</center>
</body>
</html>

# # Script pc01.ip erstellen # echo > /scripte/pc01.ip 'ping '$LOCALIP' -c 2 | grep "0 packets received" && /scripte/pc01off'
# # Erstellte(s) HTML-Seite und Script uploaden # /script/putpc01.ip


Erklärung:

Zuerst erstellen wir eine HTML-Seite. Die Ausgabe wird in die Datei pc01.htm umgeleitet. Durch die Variable ‚$LOCALIP‘ wird die vom Provider zugewiesene IP-Adresse auf PC01 ausgelesen.
Nun wird das Script pc01.ip erstellt (Wird aber erst auf PC02 ausgeführt!). Hier wird ebenfalls die aktuellen IP-Adresse ausgelesen. Diese IP soll dann zweimal angepingt werden. Die Ausgabe des pingŽs wird nach dem Inhalt 0 packets received durchsucht. Nur wenn der Suchstring passt wird das Script pc01off ausgeführt. Damit das Script mit der aktuellen IP von PC01 auch für PC02 verfügbar ist, müssen wir das soeben erstellte Script und die HTML-Seite mit dem Script putpc01.ip auf unseren FTP-Server uploaden. putpc01.ip:

#!/bin/sh
/usr/bin/ftp provider <<EOF
username
password
cd pfad
lcd /scripte
mput pc01.*
bye
<<EOF

Nun wenden wir uns dem PC02 zu, der am besten mit einer DSL-Flatrate mit dem Provider verbunden ist.


PC02:


Auf PC02 müssen noch folgende Scripte auf PC02 in /scripte erstellt werden: checkIPpc01:

#!/bin/sh
/scripte/getpc01.ip
chmod 0700 /scripte/pc01.ip
/scripte/pc01.ip

getpc01.ip:

#!/bin/sh
/usr/bin/ftp provider <<EOF
username
password
cd pfad
lcd /scripte
get pc01.ip
bye
<<EOF

pc01off:

#!/bin/sh
/usr/bin/ftp provider <<EOF
username
password
cd pfad
lcd /scripte
put pc01.htm
bye
<<EOF

pc01.htm:

<html>
<head>
<title>pc01</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<center>
<table border=0 cellpaddin="5" cellspacing="0" width="90%"><tr>
<td align="left" width="40%" height="19">
<strong>w;PC01:</strong>
</font>
</td>
<td align="center" width="10%" height="19">
<img src="dot_red.gif" height="15" width="15">
</td>
<td bgcolor="#C0C0C0" align="center" width="25%" height="19">
<font size="2" face="Arial">
<strong>Offline</strong>
</font>
</td>
<td bgcolor="#C0C0C0" align="center" width="25%" height="19">
<font size="2" face="Arial">
</strong>
Nicht Verfügbar
</font>
</td>
</tr>
</table>
</center>
</body>
</html>


Das Script checkIPpc01 starten wir als Cronjob z.B. alle 5 Minuten (oder öfter), um eine Zeitnahe Statusabfrage zu erhalten:

#
# Serverstatus checken (PC01)
#
5,10,15,20,25,30,35,40,45,50 * * * * /scripte/checkIPpc01


Erklärung:

Das Script checkIPpc01 ruft das Script getpc01.ip auf. Dieses holt sich das Script pc01.ip, in dem
die aktuellen IP von PC01 steht, beim FTP-Server ab. Da das Script nach dem Download nicht „executable“ ist, müssen wir dieses mit
chmod 0700 /Pfad/Datei nachholen.
Als nächstes überprüft unser auf PC01 erstelltes Script ob diese IP-Adresse von PC02 aus erreichbar ist. Sollte dies
nicht der Fall sein so wird das Script pc01off aufgerufen. Das lädt einfach nur das auf PC02 hinterlegte HTML-File
pc01.htm auf unseren FTP-Server.
Und zu guter Letzt wird dieser Vorgang bzw. Scriptaufruf alle 5 Minuten per Cronjob wiederholt.


Schreibe einen Kommentar