Ir para conteúdo
Fórum Script Brasil
  • 0

Shoutcast statistic - Erro fsockopen()


DunkMask

Pergunta

Olá galera da scriptbrasil.

Estou com um probleminha em um script que recebi para obter estatísticas de um servidor de stream. O servidor do meu site não consegui se conectar ao stream, mas o meu servidor local consegui.

Meu primeiro problema é esse, resolver este pequeno problema, cujo o erro é o seguinte:

Warning: fsockopen() [function.fsockopen]: unable to connect to ouvir.radioxblade.com.br:8148 (Connection refused) in /home/animexbl/public_html/radioxblade.com.br/streaming/shoutcast.class.php on line 14
Connection refused (111)
Bom, lembrando que estou usando hospedagem hostgator, mas tenho outros servidores disponíveis. agora posto aqui também a class do shoutcast
class ShoutCast { 
    // Public 
    var $host; 
    var $port; 
    var $passwd; 
     
    //Private 
    var $_xml; 
    var $_error; 
     
    function openstats() { 
        $fp = fsockopen($this->host, $this->port, $errno, $errstr, 10); 
        If (!$fp) { 
            $this->_error = "$errstr ($errno)"; 
            return(0); 
        } else { 
            fputs($fp, "GET /admin.cgi?pass=".$this->passwd."&mode=viewxml HTTP/1.0\r\n"); 
            fputs($fp, "User-Agent: Mozilla\r\n\r\n"); 
            while (!feof($fp)) { 
                    $this->_xml .= fgets($fp, 512); 
            } 
            fclose($fp); 

            if (stristr($this->_xml, "HTTP/1.0 200 OK") == true) { 
                // <-H> Thanks to Blaster for this fix.. trim(); 
                $this->_xml = trim(substr($this->_xml, 42)); 
            } else { 
                $this->_error = "Bad login"; 
                return(0); 
            } 

            $xmlparser = xml_parser_create(); 
            if (!xml_parse_into_struct($xmlparser, $this->_xml, $this->_values, $this->_indexes)) { 
                $this->_error = "Unparsable XML"; 
                return(0); 
            } 
     
            xml_parser_free($xmlparser); 

            return(1); 
        } 
    } 
     
    function GetCurrentListenersCount() { 
        return($this->_values[$this->_indexes["CURRENTLISTENERS"][0]]["value"]); 
    } 

    function GetPeakListenersCount() { 
        return($this->_values[$this->_indexes["PEAKLISTENERS"][0]]["value"]); 
    } 

    function GetMaxListenersCount() { 
        return($this->_values[$this->_indexes["MAXLISTENERS"][0]]["value"]); 
    } 
     
    function GetReportedListenersCount() { 
        return($this->_values[$this->_indexes["REPORTEDLISTENERS"][0]]["value"]); 
    } 
     
    function GetAverageListenTime() { 
        return($this->_values[$this->_indexes["AVERAGETIME"][0]]["value"]); 
    } 
     
    function GetServerGenre() { 
        return($this->_values[$this->_indexes["SERVERGENRE"][0]]["value"]); 
    } 
     
    function GetServerURL() { 
        return($this->_values[$this->_indexes["SERVERURL"][0]]["value"]); 
    } 
     
    function GetServerTitle() { 
        return($this->_values[$this->_indexes["SERVERTITLE"][0]]["value"]); 
    } 
     
    function GetCurrentSongTitle() { 
        return($this->_values[$this->_indexes["SONGTITLE"][0]]["value"]); 
    } 
     
    function GetIRC() { 
        return($this->_values[$this->_indexes["IRC"][0]]["value"]); 
    } 
     
    function GetAIM() { 
        return($this->_values[$this->_indexes["AIM"][0]]["value"]); 
    } 
     
    function GetICQ() { 
        return($this->_values[$this->_indexes["ICQ"][0]]["value"]); 
    } 

    function GetWebHitsCount() { 
        return($this->_values[$this->_indexes["WEBHITS"][0]]["value"]); 
    } 
     
    function GetStreamHitsCount() { 
        return($this->_values[$this->_indexes["STREAMHITS"][0]]["value"]); 
    } 
     
    function GetStreamStatus() { 
        return($this->_values[$this->_indexes["STREAMSTATUS"][0]]["value"]); 
    } 
     
    function GetBitRate() { 
        return($this->_values[$this->_indexes["BITRATE"][0]]["value"]); 
    } 
     
    function GetSongHistory() { 
        for($i=1;$i<sizeof($this->_indexes['TITLE']);$i++) { 
            $arrhistory[$i-1] = array( 
                                    "playedat"=>$this->_values[$this->_indexes['PLAYEDAT'][$i]]['value'], 
                                    "title"=>$this->_values[$this->_indexes['TITLE'][$i]]['value'] 
                                ); 
        } 

        return($arrhistory); 
    } 

    function GetListeners() { 
        for($i=0;$i<sizeof($this->_indexes['USERAGENT']);$i++) { 
            $arrlisteners[$i] = array( 
                                    "hostname"=>$this->_values[$this->_indexes['HOSTNAME'][$i]]['value'], 
                                    "useragent"=>$this->_values[$this->_indexes['USERAGENT'][$i]]['value'], 
                                    "underruns"=>$this->_values[$this->_indexes['UNDERRUNS'][$i]]['value'], 
                                    "connecttime"=>$this->_values[$this->_indexes['CONNECTTIME'][$i]]['value'], 
                                    "pointer"=>$this->_values[$this->_indexes['POINTER'][$i]]['value'], 
                                    "uid"=>$this->_values[$this->_indexes['UID'][$i]]['value'], 
                                ); 
        } 

        return($arrlisteners); 
    } 
     
    function geterror() { return($this->_error); } 
} 

?>

só lembrando que existe um outro script que é apenas de conexão onde coloco os dados do ip, porta e senha. mas ele não chega vir ao caso aqui.

Bom, como posso contornar este problema ai do fsockopen(), alguém poderia me ajudar?

meu outro problema é fazer com que o local onde as informações apareçam seja sempre atualizada conforme as musicas forem sendo alteradas ou ouvintes se conectando.

Lembrando que preciso atualizar somente a área destas informações e não a pagina inteira.

Espero que alguém possa me ajudar.

Desde já agradeço

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...