• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fvox

[PHP] Ping (ICMP Request)

1 mensagem neste tópico

Olá (:

Sou novo no fórum e não consegui postar na sessão de Armazém de Código, portanto creio que os moderadores que movem os tópicos para lá. Se não, desculpe por postar na área errada.

<?php

public static function ping($host){ 
    $suck = socket_create(AF_INET, SOCK_RAW, getprotobyname("ICMP")); 
    $stime = array_sum(explode(" ", microtime())); 
    socket_sendto($suck, "\x08\x00\x19\x2f\x00\x00\x00\x00ping", 12, 0x4, $host, 4242); 
    socket_read($suck, 512); 
    $etime = array_sum(explode(" ", microtime())); 
    socket_close($suck); 
    $time = $etime - $stime; 

    if(!is_float($time)) 
        return false; 
    else 
        return substr($time, 3, 2); 
} 

echo ping("www.google.com"); 

?> 

Lembrando que o script não irá funcionar em linux se não houver permissão de root para acessar os raw sockets. Quem quiser pode adicionar um timeout ao socket usando a função socket_set_option().

Desculpem-me pelo português. É que sou do Brasil, e creio que aqui o português seja um pouco diferente.

[]'s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora