====== Fare il ping con php ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//10/10/2008//** \\ \\
Ecco alcune funzioni che per,mettono di fare il ping direttamente da uno script php.
===== Ping usando il comando ping del server =====
Questa funzione tramite la chiamata ''system()'' riceve l'output del comando ping. \\
La funzione ritorna ''true'' e scrive "connesso" se il ping va a buon fine, invece false e scrive "disconnesso" per il caso contrario .
function ping($ip){
// Principi di funzionamento
//ping -c 1 $ip &>/dev/null && echo "$ip is ok" || echo "$ip is not ok"
//ping -c 1 $ip &>/dev/null && echo "true" || echo "false"
$res=system("ping -c 1 $ip &>/dev/null &&
echo 'connesso' || echo 'disconnesso' ");
if ($res=="connesso"){
return true;
}else{
return false;
}
}
===== Ping tcp o scanzione di una porta =====
Tratta da [[http://it2.php.net/manual/en/function.socket-connect.php#56864]]\\ \\
Tramite la seguente funzione e' possibile fare la scanzione di una porta su un host, ovvero una specie di ping ma con pacchetti tcp.
function pingTcp($ip, $port, $timeout){
$fp = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($fp);
socket_connect($fp,$ip,$port);
socket_set_block($fp);
switch(socket_select($r = array($fp), $w = array($fp), $f = array($fp), $timeout))
{
case 2:
echo "[-] Connessione rifiutata\n";
fclose($fp);
return true;
break;
case 1:
echo "[+] Connesso\n";
fclose($fp);
return true;
break;
case 0:
echo "[-] Timeout\n";
fclose($fp);
return false;
break;
}
}