Ir para o conteúdo
fvox

[PHP] Ping (ICMP Request)

Mensagens Recomendadas

fvox    0
fvox

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade