<?php
function getRealIP() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) return $_SERVER['HTTP_CLIENT_IP'];
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) return $_SERVER['HTTP_X_FORWARDED_FOR'];
    return $_SERVER['REMOTE_ADDR'];
}

function getOS() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    $osArray = [
        '/windows nt 10/i' => 'Windows 10',
        '/windows nt 6.3/i' => 'Windows 8.1',
        '/windows nt 6.2/i' => 'Windows 8',
        '/windows nt 6.1/i' => 'Windows 7',
        '/android/i' => 'Android',
        '/linux/i' => 'Linux',
        '/iphone/i' => 'iPhone',
        '/macintosh|mac os x/i' => 'Mac OS',
    ];
    foreach ($osArray as $regex => $value) {
        if (preg_match($regex, $userAgent)) return $value;
    }
    return 'Desconhecido';
}

function getBrowser() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    $browsers = [
        '/firefox/i' => 'Firefox',
        '/chrome/i' => 'Chrome',
        '/safari/i' => 'Safari',
        '/edge/i' => 'Edge',
        '/opera/i' => 'Opera',
        '/msie|trident/i' => 'Internet Explorer',
    ];
    foreach ($browsers as $regex => $value) {
        if (preg_match($regex, $userAgent)) return $value;
    }
    return 'Desconhecido';
}

function getDevice() {
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    if (preg_match('/tablet|ipad|playbook|silk/i', $ua)) return 'Tablet';
    if (preg_match('/mobile|android|iphone|ipod/i', $ua)) return 'Celular';
    return 'Computador';
}

// IP e dados do visitante
$ip = getRealIP();
$details = @json_decode(file_get_contents("https://ipinfo.io/{$ip}/json"));
$pais = $details->country ?? 'Desconhecido';
$estado = $details->region ?? 'Desconhecido';
$cidade = $details->city ?? 'Desconhecida';
$localizacao = $details->loc ?? 'Desconhecida';
$isp = isset($details->org) ? preg_replace("/AS\\d+\\s/", "", $details->org) : 'Desconhecido';

$dataHora = date('d/m/Y H:i:s');
$sistema = getOS();
$navegador = getBrowser();
$dispositivo = getDevice();
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <meta charset="UTF-8">
  <title>Acesso Negado</title>
  <style>
    body {
      font-family: 'Poppins', sans-serif;
      background-image: url('img/lock.jpg');
      background-size: cover;
      color: #f5f5f5;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      text-align: left;
      background-color: black;
    }
    .container {
      background-color: rgba(0,0,0,0.7);
      padding: 30px;
      border-radius: 10px;
      max-width: 600px;
    }
    h2 {
      color: #ff4c4c;
      margin-bottom: 20px;
    }
    p span {
      color: #00d1ff;
      font-weight: bold;
    }
    p i {
      color: #ffe600;
    }
  </style>
</head>
<body>
  <div class="container">
    <h2>🔒 Acesso Negado</h2>
    <p><span>Mensagem:</span> <i>Você não tem permissão para acessar esta área.</i></p>
    <p><span>Data e Hora:</span> <i><?= $dataHora ?></i></p>
    <p><span>IP:</span> <i><?= $ip ?></i></p>
    <p><span>País:</span> <i><?= $pais ?></i></p>
    <p><span>Estado:</span> <i><?= $estado ?></i></p>
    <p><span>Cidade:</span> <i><?= $cidade ?></i></p>
    <p><span>Provedor (ISP):</span> <i><?= $isp ?></i></p>
    <p><span>Sistema Operacional:</span> <i><?= $sistema ?></i></p>
    <p><span>Navegador:</span> <i><?= $navegador ?></i></p>
    <p><span>Dispositivo:</span> <i><?= $dispositivo ?></i></p>
    <?php if ($localizacao != 'Desconhecida'): ?>
  <h3 style="color:#00ffae;">🗺️ Mapa da Localização</h3>
  <iframe 
    src="https://www.openstreetmap.org/export/embed.html?bbox=<?= explode(',', $localizacao)[1]-0.01 ?>%2C<?= explode(',', $localizacao)[0]-0.01 ?>%2C<?= explode(',', $localizacao)[1]+0.01 ?>%2C<?= explode(',', $localizacao)[0]+0.01 ?>&layer=mapnik&marker=<?= explode(',', $localizacao)[0] ?>%2C<?= explode(',', $localizacao)[1] ?>" 
    style="width: 100%; height: 300px; border:1px solid #ccc; border-radius: 8px;" 
    allowfullscreen 
    loading="lazy">
  </iframe>
  <p style="font-size: 14px;"><a href="https://www.openstreetmap.org/?mlat=<?= explode(',', $localizacao)[0] ?>&mlon=<?= explode(',', $localizacao)[1] ?>" target="_blank" style="color: #00d1ff;">🔗 Ver no OpenStreetMap</a></p>
<?php endif; ?>

  </div>
</body>
</html>
