if($output == 'Begäran gjorde timeout.')
{
echo $ip[$i] . ': är offline';
}
else
{
echo $ip[$i] . ': är online';
}
Du får alltid någons slags svar från ping även om datorn den pingar inte svarar. Exakt vilket svar du får beror på vilket program som används för att pinga och vilket språk du har inställt.
tumba25 skrev:
if($output == 'Begäran gjorde timeout.')
Håller inte, om svaret är på annat språk.
Det finns dessutom fler svar än ovanstående som antyder att en ip-adress är offline. T.ex. om den server du själv är på inte kan hitta en rutt till den efterfråga... i vart fall får jag ibland "Ping request could not find host...".
/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.
Jag förstår inte varför du ska använda ping alls. Ville du inte se vilka som är online på forumet?
Om du vill se vilka maskiner som är aktiva på nätverket är det bättre att snacka med din router. Att skicka en massa ICMP tror jag inte är någon bra idé. Dessutom brukar många mjukvarubrandväggar strunta i ping och du får då timeout även om maskinen är ansluten.
tumba25 skrev:
if($output == 'Begäran gjorde timeout.')
Håller inte, om svaret är på annat språk.
Jag vill bara påpeka att jag skrev det redan i det inlägget.
Men du har ju självklart rätt i att man kan få olika svar när man inte får svar. Det bästa är ju att kolla att $output börjar med "svar från" beroende på språk osv då vet man att datorn iaf svarat och sätta offline om man får något annat.
$ip_list = array('192.168.0.111', '192.168.0.101'); // Fyll på denna...
foreach ($ip_list as $ip) {
$output = shell_exec('ping ' . $ip);
// gör vad som behövs med $output...
}
/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.
$ip_list = array('192.168.0.111', '192.168.0.101'); // Fyll på denna...
foreach ($ip_list as $ip) {
$output = shell_exec('ping ' . $ip);
// gör vad som behövs med $output...
}
Marcus skrev ju om den till att använda foreach istället.