Server Online-Offline Check
Verfasst: 02.04.2005 13:38
Hi, vielleicht kennt ihr das Problem. Auf eurem Board wird fremder Script
ausgeführt, aber manchmal ist die Source URL down oder net erreichbar.
Dann gibt das unschöne Kreuze bzw. lange Ladezeiten bis Timeout.
Jo, wie lässt sich so was vermeiden?
Ich denk mal, am besten mit nem Script, der die Source URL vorher abfragt.
Blos wie lässt sich das Ganze für phpbb umsetzen?
Letzter Stand ist, das Script in eine status.php zu packen, die Datei zu includen
und der URL voranzustellen, aber das Ergebnis sind nur Kreuze...
Vielleicht gibts ja schon ne richtig gute Lösung für...
Ich hab nur nix gefunden dazu.
Wär super, wenn wer weiterhelfen kann.
ausgeführt, aber manchmal ist die Source URL down oder net erreichbar.
Dann gibt das unschöne Kreuze bzw. lange Ladezeiten bis Timeout.
Jo, wie lässt sich so was vermeiden?
Ich denk mal, am besten mit nem Script, der die Source URL vorher abfragt.
Blos wie lässt sich das Ganze für phpbb umsetzen?
Letzter Stand ist, das Script in eine status.php zu packen, die Datei zu includen
und der URL voranzustellen, aber das Ergebnis sind nur Kreuze...
Code: Alles auswählen
<?php
$live = '<img src="' . $images['icon_online'] . '" alt="' . $lang['Online'] . '" title="' . $lang['Online'] . '" border="0" />';
$dead = '<img src="' . $images['icon_offline'] . '" alt="' . $lang['Offline'] . '" title="' . $lang['Offline'] . '" border="0" />';
$purl = parse_url($url);
$p_link = str_replace("http://", "", $url);
$s_link = str_replace("/check.txt", "", $p_link);
list($addr,$port)= explode (':',"$s_link");
if (empty($port)){
$port = 80;
}
$churl = @fsockopen(server($addr), $port, $errno, $errstr, 7);
if (!$churl){
header("Location: $dead");
}
else {
if ($socket = fsockopen($purl['host'], empty($purl['port'])?getservbyname($purl['scheme'],'tcp'):$purl['port'], &$errno, &$errstr, 5))
{
fputs($socket, "HEAD $url HTTP/1.0\r\n\r\n");
$response = fgets($socket, 16);
fclose($socket);
if(preg_match("/^HTTP\/\d+\.\d+\s+200/", $response))
{
header("Location: $live");
exit;
}
else {
header("Location: $dead");
exit;
}
}
}
function server($addr){
if(strstr($addr,"/")){$addr = substr($addr, 0, strpos($addr, "/"));}
return $addr;
}
?>
Ich hab nur nix gefunden dazu.
Wär super, wenn wer weiterhelfen kann.