Ping (ICMP Request)

Iniciado por Fvox, 27 de Janeiro , 2009, 09:11:37 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Fvox

Hi.

Segue duas funções. Uma usa socket_send() e a outra socket_sendto().  :)
Nem sei se funciona como deveria, mas aparentemente funciona, LOL.

<?php
function ping($host){
$suck socket_create(AF_INETSOCK_RAWgetprotobyname("ICMP"));
$stime array_sum(explode(" "microtime()));
socket_sendto($suck"\x08\x00\x19\x2f\x00\x00\x00\x00ping"120x4$host4242);
socket_read($suck512);
$etime array_sum(explode(" "microtime()));
socket_close($suck);
$time $etime $stime;

if(!is_float($time))
return false;
else
return substr($time32); //miliseconds
}
echo 
ping("www.darkers.com.br");
?>



E a outra:
<?php
abstract class Sender
{
abstract public function main($host);

protected function ping($host){
$sk socket_create(AF_INETSOCK_RAWgetprotobyname("ICMP"));
socket_connect($sk$host0);

$stime array_sum(explode(" "microtime()));   
socket_send($sk"\x08\x00\x19\x2f\x00\x00\x00\x00ping"120);

socket_read($sk512);
$etime array_sum(explode(" "microtime()));
$time $etime $stime;
socket_close($sk);

if(!is_float($time))
return false;
else
return substr($time32); //miliseconds
}
}

/* 
class Ping extends Sender {
[...]
*/
?>



[]'s
"Achas que estás caindo na insanidade? Mergulhe."