Ir para conteúdo

POWERED BY:

Arquivado

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

diegoguedesm

Retorno curl usuários online

Recommended Posts

Olá, com esse código consigo retorno dos usuarios online somente localhost. Quando envio para host deixa de funcionar, mesmo buscando o código ex na segunda chamada. Ele só funciona com o segundo parametro tokem gerado na página do site código fonte. Alguem tem ideia como funcionar esse script na host se tem algum tipo de proteção para não ter retorno quando ta na host?

if (!function_exists('getHistats')) {
    function getHistats($sid = 0, $cc = '') {
        
        if (empty($sid) || empty($cc))
            return 'erro';

        $url    = 'http://www.histats.com/viewstats/HST_GET_SUMMARY.php';
        $result = '';

        $ualist = array(
            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)',
            'Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.23 (KHTML, like Gecko) Ubuntu/10.04 Chromium/11.0.688.0 Chrome/11.0.688.0 Safari/534.23',
            'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110221 Ubuntu/10.04 (lucid) Firefox/3.6.14 GTB7.1',
            'Opera/9.80 (X11; Linux i686; U; en) Presto/2.7.62 Version/11.01',
            'Midori/0.2.2 (X11; Linux i686; U; en-us) WebKit/531.2+',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1150.1 Iron/20.0.1150.1 Safari/536.11'
        );

        if (function_exists('curl_init')) {

            $http_headers                 = array();
            $http_headers[]               = 'Host: www.histats.com';
            $http_headers[]               = 'Referer: www.histats.com/viewstats/?sid='. $sid .'&act=2&f=1';
            $http_headers[]               = 'X-Requested-With: XMLHttpRequest';

            $opts                         = array();
            $opts[CURLOPT_URL]            = $url;
            $opts[CURLOPT_HTTPHEADER]     = $http_headers;
            $opts[CURLOPT_CONNECTTIMEOUT] = 5;
            $opts[CURLOPT_TIMEOUT]        = 10;
            $opts[CURLOPT_USERAGENT]      = $ualist[rand(0, count($ualist) - 1)];
            $opts[CURLOPT_HEADER]         = FALSE;
            $opts[CURLOPT_RETURNTRANSFER] = TRUE;
            $opts[CURLOPT_POST]           = 1;
            $opts[CURLOPT_POSTFIELDS]     = 'AR_REQ[sid]='. $sid .'&AR_REQ[CC]='. $cc .'&dbg=1';
          
            # Initialize PHP/CURL handle
            $ch = curl_init();
            curl_setopt_array($ch, $opts);
            # Create return array
            $result = curl_exec($ch);

            curl_close($ch);

        } elseif (ini_get('allow_url_fopen')) {
            $result = file_get_contents($url);
        }


        if (empty($result) || ($result == 'error=11') || ($result == 'err:1'))
            return 'erro';

        $obj = json_decode($result);

        return isset($obj->livearray->livesummary->cur_online) ? $obj->livearray->livesummary->cur_online : 0;
    }
}

$html = file_get_contents('http://histats.com/viewstats/?sid=3041076&act=2&f=1');

preg_match("/OBJ_summary.sockTOKEN = '(.*?)'/i", $html, $match);

echo 'Onlines: '. getHistats('3041076', 'bjh1NStBTVZyMFJzRENTODFHTHNQamJyV0FvY2l4TGRNSk5FczQyYnR3dERlaUhWczJZNUtWQk5lU2p6STlyRTZCQXZUd2t6MWJzS3Z2cWs2d1g4aXc9PQ==');
echo '<br />';
echo 'Token: '. $match[1];
echo '<br />';
echo 'Onlines: '. getHistats('3041076', $match[1]);

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.