Hallo,
ich bräuchte ein verfahren, einen server mit php anzupingen.
ich hab was von sockets gehört, mir das ganze auch angesehen, aber irgendwie bekomme ich es selbst nicht hin....
ein tipp war, ein packet mit einer socketverbindung zu einem server zu schicken, es zu empfangen und die zeitdifferenz dazwischen zu messen...
kann mir jemand dabei helfen?
ciao
tom
Server an pingen
Hallo Tom,
verwende die Funktion.
mfg. Nico
verwende die Funktion.
Code: Alles auswählen
<?php
/*
Ping über HTTP
Aktion: PHP Scripte für die armen dieser Welt
Der Erlös geht für mein Pausenbrot drauf
Copyright (c) 2005 by Phillip 'Firebird' Berndt
Da man ICMP aus PHP heraus nicht verwenden
kann und echod(7) auf den meisten Servern
deaktiviert ist, verwendet diese Funktion
das HTTP Protokoll zur Zeitmessung.
Eventueller Load des Servers wird hier nicht
berücksichtigt!!!
*/
function ping($server, $count = 5, $debug = false)
{
$timeNeeded = 0;
for($i=0;$i<$count;$i++)
{
if($debug)
echo('Ping '.$server.' '.$i.' (Sending 18 bytes) ');
$socket = @fsockopen($server, 80, &$errno, &$errstr, 3);
if(!$socket) return false;
fwrite($socket, "GET / HTTP/1.1\r\n\r\n");
$start = microtime(true);
fgetc($socket);
$duration = microtime(true) - $start;
if($debug)
echo($duration.' s'."<br/>\n");
fclose($socket);
$timeNeeded += $duration;
if($debug)
flush();
}
$timeNeeded /= $count;
return round($timeNeeded, 3);
}
echo('Ping zu Cgiforum: '.ping('www.cgiforum.de').' s');
?>
-
- Beiträge: 7
- Registriert: 06.05.2005 19:31