FOK!forum / Digital Corner / [php] controle of host down is
Jumpzondag 10 oktober 2004 @ 17:09
hoe kan je simpel controleren als een bepalade host down is of niet?

Momenteel gebruik ik volgend stukje code:


Deze code knipbaar maken? Klik hier


test het op geenstijl omdat die momenteel toch down is


maar als de host down is gaat cpu naar 100%. en via de crontab bleef deze lopen tot je het script handmatig uitschakelde.

is er een handige makkelijke functie om dit te controleren?


zoeken op google naar host en php en dergleijke kreeg ikenkel veel hostservices te zien
Icey1986zondag 10 oktober 2004 @ 17:16
[php]
<?php
$live = "/images/online.gif";
$dead = "/images/offline.gif";

$link = $_GET['link'].":";
$s_link = str_replace("::", ":", $link);
list($addr,$port)= explode (':',"$s_link");
if (empty($port)){
$port = 80;
}

$churl = @fsockopen(server($addr), $port, $errno, $errstr, 20);
if (!$churl){
//echo $errstr;
header("Location: $dead");
}
else {
header("Location: $live");
}
function server($addr){
if(strstr($addr,"/")){$addr = substr($addr, 0, strpos($addr, "/"));}
return $addr;
}
?>
[/php]

Aanspreken met bestand.php?link=127.0.0.1:3306

Zodoende krijg ik een mooi rood, of groen bolletje die aangeeft of een host/service werkt of niet.

Het voordeel is, mocht het zo zijn dat een host down is dan duurt het max 30 seconden voordat hij dat doorheeft (rood), maar de website is dan gewoon normaal te gebruiken Dus ipv dat hij wacht op antwoord bouw hij gewoon de website normaal op, alleen het plaatje staat er dan nog niet.
Jumpzondag 10 oktober 2004 @ 17:19
thx


het is in ieder geval al beter dan een crontab dat de server 6 uur 100% belaste
Icey1986zondag 10 oktober 2004 @ 17:20
Waarom werkt op dit kutforum niet gewoon eeen code of php tag?
Jumpzondag 10 oktober 2004 @ 17:21
quote:
Op zondag 10 oktober 2004 17:20 schreef Icey1986 het volgende:
Waarom werkt op dit kutforum niet gewoon eeen code of php tag?
deze zijn nog niet geimplementeerd (damn, moeilijk woord ) in replique
Tiemiezondag 10 oktober 2004 @ 17:30
<?
if(!file_get_contents($host)) {
// host is down
} else {
// host is niet down
}
?>
Icey1986zondag 10 oktober 2004 @ 17:32
Mijn script is wellicht net helemaal wat de TS bedoeld, die van mij kijkt namelijk naar een bepaalde poort (standaart 80, maar je kan ook21, of 3306 meegeven).
Jumpzondag 10 oktober 2004 @ 17:50
quote:
Op zondag 10 oktober 2004 17:32 schreef Icey1986 het volgende:
Mijn script is wellicht net helemaal wat de TS bedoeld, die van mij kijkt namelijk naar een bepaalde poort (standaart 80, maar je kan ook21, of 3306 meegeven).
ja, maar het is goed genoeg voor wat ik eigenlijk bedoelde.

met poort 80 kan je ook snel zien als host down is of niet