<?php
/**
 * Cloaker Helix Global Capital
 * Deteta bots do Google e mostra safe page em vez do site real
 */

// ============================================
// CONFIGURACOES
// ============================================
$safe_page = 'white/index.html';
$debug = false;

// ============================================
// OBTER DADOS DO VISITANTE
// ============================================
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$ip = $_SERVER['REMOTE_ADDR'] ?? '';
$acceptLang = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '';
$acceptEnc = $_SERVER['HTTP_ACCEPT_ENCODING'] ?? '';

// ============================================
// DETECAO DE BOTS
// ============================================
$isBot = false;
$botReason = '';

// Sinal 1: User-Agent de bots conhecidos
$botPatterns = [
    'googlebot', 'bingbot', 'slurp', 'duckduckbot', 'baiduspider',
    'yandexbot', 'sogou', 'exabot', 'facebot', 'ia_archiver',
    'bot', 'crawl', 'spider', 'scan', 'moderator',
    'facebookexternalhit', 'twitterbot', 'linkedinbot',
    'semrush', 'ahrefs', 'mj12bot', 'dotbot',
    'petalbot', 'bytespider', 'applebot', 'adsbot',
    'uptimerobot', 'pingdom', 'statuscake', 'site24x7',
    'nmap', 'nikto', 'sqlmap', 'masscan', 'zmap',
    'curl', 'wget', 'python', 'java', 'go-http', 'okhttp',
    'headless', 'phantomjs', 'selenium', 'puppeteer', 'playwright'
];

foreach ($botPatterns as $pattern) {
    if (stripos($userAgent, $pattern) !== false) {
        $isBot = true;
        $botReason = "UA match: $pattern";
        break;
    }
}

// Sinal 2: User-Agent vazio ou suspeito
if (!$isBot && (empty($userAgent) || strlen($userAgent) < 20)) {
    $isBot = true;
    $botReason = "UA vazio ou curto";
}

// Sinal 3: IPs de datacenters conhecidos
$datacenterIPs = [
    '66.249.', '64.233.', '72.14.', '209.85.', '216.239.',
    '66.102.', '74.125.', '108.177.', '172.217.', '142.250.',
    '173.194.', '216.58.',
    '40.77.', '157.55.', '207.46.', '13.66.', '40.76.',
    '20.54.', '20.69.', '20.190.',
    '3.', '13.', '15.', '18.', '34.', '35.', '52.', '54.',
    '103.21.', '103.22.', '103.31.', '104.16.', '104.17.',
    '159.89.', '159.203.', '165.227.', '167.99.', '174.138.',
    '206.189.', '68.183.', '104.131.', '104.236.', '138.68.',
    '142.93.', '143.110.', '143.198.', '144.126.',
    '157.230.', '157.245.', '161.35.', '164.90.',
    '167.71.', '167.172.', '178.62.', '188.166.',
    '206.81.', '209.97.', '64.225.', '64.227.',
    '95.216.', '116.203.', '135.181.', '148.251.',
    '157.90.', '176.9.', '195.201.', '88.99.'
];

foreach ($datacenterIPs as $prefix) {
    if (strpos($ip, $prefix) === 0) {
        $isBot = true;
        $botReason = "IP datacenter: $prefix";
        break;
    }
}

// Sinal 4: Headers HTTP em falta
if (!$isBot) {
    if (empty($acceptLang)) {
        $isBot = true;
        $botReason = "Accept-Language ausente";
    }
    if (empty($acceptEnc)) {
        $isBot = true;
        $botReason = "Accept-Encoding ausente";
    }
}

// ============================================
// ACAO BASEADA NA DETECAO
// ============================================
if ($isBot && $_SERVER['REQUEST_URI'] === '/') {
    if ($debug) {
        error_log("CLOAKER: Bot detetado - $botReason | UA: $userAgent | IP: $ip");
    }
    if (file_exists($safe_page)) {
        readfile($safe_page);
    } else {
        echo '<!DOCTYPE html><html><head><title>Helix Global Capital</title></head><body><h1>Helix Global Capital</h1></body></html>';
    }
    exit;
}

// ============================================
// UTILIZADOR REAL - SITE ORIGINAL
// ============================================
if ($debug) {
    error_log("CLOAKER: Utilizador real - UA: $userAgent | IP: $ip");
}
?>
<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <title>Helix Global Capital</title>
</head>
<body>
    <h1>Bem-vindo a Helix Global Capital</h1>
    <p>SITE ORIGINAL ENTRA AQUI</p>
</body>
</html>
