PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache2 mitteilen, wenn eine IP nicht erreichbar ist - Geht das?



ThyMaster
12.11.07, 09:02
Hi Folks,

ich suche ein kleines Skript, welches im Vorwege kurz checkt ob eine bestimmte IP erreichbar ist (ping), im positiven Falle an diese weiterleitet und ansonsten rück-verweist an die Startseite.

Hat jemand so ein code-Schnipsel?

vielen Dank im Voraus

Gruß
Falko

MiGo
13.11.07, 20:25
Mit Apache alleine wird das wohl nix :)

mit php sollte das aber gehen:

$result = exec('ping -c 1 deineIP');
if ( !(strpos($result, '100%') === null)) {
//kein erfolgreicher Ping
header('location:StartSeite');
exit(0);
} else { //ping klappt
header('location:http://www.zielseite.de');
exit(0);
}
Achtung, aus dem Gedächtnis geschreiben und voll ungetestet.
Achtung 2: exec() ist bitter gefährlich, wenn es mit nicht-statischen Daten in Verbindung gebracht wird.

ThyMaster
14.11.07, 11:14
Vielen Dank, hab's mittlerweile mit einem Shell-Skript hingekriegt:

#!/bin/sh

/bin/ping -c 2 192.168.4.12 &> /dev/null && IP=my.dest.lan
/bin/ping -c 2 192.168.4.21 &> /dev/null && IP=my2.dest.lan || IP=hompage.dest.lan

echo Content-type: text/html
echo ""

/bin/cat <<EOM
<HTML>
<HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<TITLE>Forwarding...</TITLE>
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=http://$IP">
</HEAD>
<P><FONT FACE="Arial, sans-serif">Forwarding...</FONT></P>
</BODY>
</HTML>
EOM

-
ThyMaster