Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Avelino

Ping IP:Porta (cURL)

Recommended Posts

Boa tarde amigos, preciso pingar um servidor de jogos online e sua porta, isso sei fazer mole com o fsockopen, mas meu servidor de hospedagem(compartilhado) não está habilitado essa função e falando com o suporte não tem jeito de liberar para esse serviço, somente para um servidor dedicado.

 

Então pesquisei e tentei fazer o script em cURL, até consegui chegar perto mas não avancei mais, vocês podem me dizer se é possível e me dar um norte?

 

Obrigado a todos e segue os scripts que já tenho.

 

 

O resultado é esse para os scripts abaixo

 

 

Server Up
Server Up
Server Down
Server Down

<?php
    # Variaveis Teste $IP:$PORTA
    $ip = "216.144.247.119";
    $porta = "6900";
    # Variaveis Teste $IP:$PORTA
    #
    #
    #
    # Funciona Perfeito, mas meu servidor online não suporta FSOCKOPEN então preciso que seja feito por cURL
    if(!isset($errcode)){ $errcode = "0"; }
    if(!isset($errstr)){ $errstr = "2"; }
    if(!$fsockopen = fsockopen($ip,$porta,$errcode,$errstr,1.5)){
        echo 'Server Down<br />';
    } else {
        echo 'Server Up<br />';
    }
    fclose($fsockopen);
    # Funciona Perfeito(localhost ou em dedicado), mas meu servidor online(compartilhado) não suporta FSOCKOPEN
    #
    #
    #
    # Funciona (Somente IP, Preciso do IP:PORTA)
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $ip);
    curl_setopt($ch, CURLOPT_TIMEOUT, 2);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $httpcode = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
    if($httpcode >= 200 && $httpcode < 300){
        echo 'Server Up<br />';
    } else {
        echo 'Server Down<br />';
    }
    curl_close($ch);
    # Funciona (Somente IP, Preciso do IP:PORTA)
    #
    #
    #
    # Tentei o Exemplo acima mesclando porta e Não Funciona
    $ch = curl_init(''.$ip.':'.$porta.'');
    curl_setopt($ch, CURLOPT_TIMEOUT, 2);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $httpcode = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
    if($httpcode >= 200 && $httpcode < 300){
        echo 'Server Up<br />';
    } else {
        echo 'Server Down<br />';
    }
    curl_close($ch);
    # Tentei o Exemplo acima mesclando porta e Não Funciona
    #
    #
    #
    # Tentei esse metodo mas também não funciona
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $ip);
    curl_setopt($ch, CURLOPT_PORT, $porta);
    curl_setopt($ch, CURLOPT_TIMEOUT, 2);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $httpcode = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
    if($httpcode >= 200 && $httpcode < 300){
        echo 'Server Up<br />';
    } else {
        echo 'Server Down<br />';
    }
    curl_close($ch);
    # Tentei esse metodo mas também não funciona
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei em mais uma coisa, usar CURLOPT_PROXY (da pra usar ip:porta) mas não sei se encaixa no meu caso, vou codificar alguma coisa e retorno, mas se alguém tiver alguma dica ainda estou precisando.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite amigo ninguem te respondeu mas vou te ajudar é muito simples segue um exemplo meu.

 

<?php

 

function ServerCheck($url, $port){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_PROXYPORT, $port);
$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ( $httpcode == "200") {
   echo "------------------------------------<br>";
   echo "Servidor online PORTA -> [ $port ]  <br>";
   echo "------------------------------------<br>";
}else{

   echo "------------------------------------<br>";
   echo "Servidor off-line PORTA -> [ $port ]<br>";
   echo "------------------------------------<br>";
}


}
// checa porta 21 FTP
ServerCheck("kghost.com.br",21);

// checa porta 21
ServerCheck("kghost.com.br",80);

// checa porta 587 SMTP
ServerCheck("kghost.com.br",587);

// checa porta 587 SMTP
ServerCheck("kghost.com.br",8080);

?>

 

Atenciosamente

http://www.kghost.com.br/

 

Obrigado.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.