Puccini
Neues Mitglied
Hi! Ich nutze den Befehl "shell_exec" wie folgt:
leider kommt es bei manchen IP's zu einem Serverausfall und ich weis einfach nicht warum..
Ich lass schon überprüfen ob die IP vollständig ist und ob auch keine Buchstaben enthalten sind.
Aber tortzdem passiert es das bei einigen IP's sich mein Apache aufhängt und ich ihn erst neustarten muss bis es wieder geht :<
kennt jemand das phänomen und weis woran es liegt??
ich danke schonmal für die hilfe
Ach und nochwas:
ich werte zur Zeit die Anzahl der Empfangen Packete aus, aber wenn bei dem Ping kommt "Antwort von xx.xx.xx.xx: Zielhost nicht erreichbar." zählt das auch als Empfangen..
wie kann ich sicher stellen das auch wirklich nur erfolgreiche Pings erkannt werden? :<
viele dank
hier noch die PHP-Funktion:
Code:
$cmd=shell_exec("ping -n 1 -w 3 $IP");
leider kommt es bei manchen IP's zu einem Serverausfall und ich weis einfach nicht warum..
Ich lass schon überprüfen ob die IP vollständig ist und ob auch keine Buchstaben enthalten sind.
Aber tortzdem passiert es das bei einigen IP's sich mein Apache aufhängt und ich ihn erst neustarten muss bis es wieder geht :<
kennt jemand das phänomen und weis woran es liegt??
ich danke schonmal für die hilfe

Ach und nochwas:
ich werte zur Zeit die Anzahl der Empfangen Packete aus, aber wenn bei dem Ping kommt "Antwort von xx.xx.xx.xx: Zielhost nicht erreichbar." zählt das auch als Empfangen..
wie kann ich sicher stellen das auch wirklich nur erfolgreiche Pings erkannt werden? :<
viele dank
hier noch die PHP-Funktion:
Code:
function sendPing($IP)
{
//Überprüfen ob es sich um eine gültige IP-Adresse handelt
//nur Zahlen und "." sind erlaubt
$ValidateData = array('1','2','3','4','5','6','7','8','9','0','.');
for($i=0;$i<strlen($IP);$i++)
{
if(in_array($IP[$i],$ValidateData)==false)
return utf8_encode("ungültige IP: ".$IP);
}
if($IP=="0.0.0.0")
return utf8_encode("ungültige IP: ".$IP);
//Ping via Shell ausführen
//exec alleine reicht nicht
//1 Packet wird gesendet, Client muss innerhalb 3ms antworten
$cmd=shell_exec("ping -n 1 -w 3 $IP");
//Ermitteln der empfangenen Packete
$empfang = stristr($cmd,"Empfangen =");
$anz = trim(substr($empfang,11,2));
if($anz!="0")
{
return "online";
}
return "offline";
}