dguimaraes Posted April 23, 2015 at 05:53 PM Report Share #581739 Posted April 23, 2015 at 05:53 PM Boas, estou agora a começar a programar em PHP, e gostava de fazer uma função que fizesse um ping a um host e me desse um retorno verdadeiro ou falso para alterar um estado de uma imagem. É possível fazer só com php ou é necessário outra linguagem? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 23, 2015 at 06:31 PM Report Share #581744 Posted April 23, 2015 at 06:31 PM quando dizes "ping" estás a perguntar como enviar um ICMP Echo Request ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
apocsantos Posted April 23, 2015 at 09:13 PM Report Share #581757 Posted April 23, 2015 at 09:13 PM Boa noite, Se apenas queres ver se o host responde, podes tentar ligar a um porto que saibas que estará aberto, caso estabeleça connecção faz algo, caso não estabeleça faz outra tarefa. $host = '192.168.2.254'; //ip do host $port = 8080; //porta $Timeout = 1; //timeout if($fp = fsockopen($host,$port,$errCode,$errStr,Timeout)) { echo "respondeu"; } else { echo "nao respondeu"; } fclose($fp); //fecha Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
dguimaraes Posted April 24, 2015 at 12:50 PM Author Report Share #581786 Posted April 24, 2015 at 12:50 PM Boas! apocsantos obrigado pela dica 🙂 era isso só não percebo uma cena, por exemplo na condição $fp, para que objectivo se adiciona a variável $errCode e $errStr? Desculpem a ignorancia mas gosto de saber o que faz cada uma das linhas eu sei que já existem rodas inventadas mas para saber como elas rodam gosto de saber o que executa cada linha. Abraço Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 24, 2015 at 12:53 PM Report Share #581787 Posted April 24, 2015 at 12:53 PM serve para obter informação em caso de erro : http://php.net/manual/en/function.fsockopen.php IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
dguimaraes Posted April 24, 2015 at 02:34 PM Author Report Share #581798 Posted April 24, 2015 at 02:34 PM Boas, Mas esta função não é propriamente um ping, ele depende da porta se tem a porta neste caso 8080 aberta ou não, se o usar para testar um host como windows sem servidor web ou um serviço com a porta desejada não funciona...isto quero dizer que não é genérico...certo? Atentamente, Link to comment Share on other sites More sharing options...
Solution apocsantos Posted April 24, 2015 at 04:03 PM Solution Report Share #581803 Posted April 24, 2015 at 04:03 PM Boa tarde, Certo! Isto testa apenas se um host aceita conecções numa determinada porta e não uma implementação do ICMP Echo Request. Normalmente a porta 80 terá resposta nos servidores web, mas não em todos os hosts. Se queres mesmo um ICMP Echo Request, podes (caso o host permita), usar a função exec e o ping do sistema operativo. <?php function pingaMasNaoChove($ip) { $resultado = exec("/bin/ping -n 4 $ip", $rsp, $estado); if (0 == $estado) { $estado = "vivo"; } else { $estado = "morto"; } echo .$status; } Para usar basta chamar a função com um endereço pingaMasNaoChove("192.168.2.254"); Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
dguimaraes Posted April 24, 2015 at 04:56 PM Author Report Share #581807 Posted April 24, 2015 at 04:56 PM 🙂 obrigado pela dica...Abraço Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now