0

Retorno curl usuários online

criado por Diego Guedes em 19/09/2015 1:45am
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]);

Lista de Respostas:

Nenhuma resposta foi publicada ainda.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)