PDA

Visualizza la versione completa : comando PHP shell_exec


Biolchini Andre
09-11-2006, 15:37
avrei un problema sulla chiamata del comando shell_exec.
In pratica dovrei eseguire una scansione di network tramite il comando PING,
Il problema sorge dopo un po che inizia il ciclo si blocca.
Dal monitor di sistema non si vede nessuna degenerazione delle prestazioni e non comprendo da cosa possa nascere il problema.
un dubbio l'avrei nel comando shell_exec che possa intasare il server o altro ma non so come evitarlo.
Qualchuno puņ aiutarmi a capire ??? Grazie

sotto riporto il codice della funzione
in meta linguaggio :

apro database
eseguo una query sul range di indirizzi
ciclo sul risultato della query
if ping_function($ip)
eseguo operazioni OKPing
else
eseguo operazioni PingKo
fine ciclo


function ping_function($ip)
{
/*
esegue un ping verso l'indirizzo $ip.
se va a buon fine ritorna il time in ms
se non funziona ritorna un valore -1

es. if(ping_function("10.118.12.90") < 0)
echo("Ping fallito")
else
echo("il Ping funziona");
*/
set_time_limit(30);
// Eseguzione del cpmando di Ping dal sistema
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
$command = shell_exec("ping -n 1 $ip"); // MS Windows Ping command
//$command = shell_exec("ping -n 1 -w 1000 -a $ip"); // MS Windows Ping command
}
else
{
$command = shell_exec("ping -c 1 $ip"); // UNIX/Linux Ping command
}
//echo("
risultato Comando Ping
".$command);
// controllo il risultato del ping
if (eregi("scadut", $command))
{ // controllo se č in time out
$mstime = -1;
}

else { // ping worked so get the time
$mstime = 0.0;
$bp = stripos($command, "durata")+7;
$ep = stripos($command, "ms");
$mstime = substr($command, $bp, $ep-$bp);
}
//echo("

Tempo mstime --> $mstime");
unset($command);
return($mstime);
}

jonnym78
09-11-2006, 15:47
http://forum.html.it/forum/showthread.php?s=&threadid=556871

Loading