<?php
// 1. Получаем URL из параметров
$target_url = isset($_GET['url']) ? $_GET['url'] : '';

// 2. Валидация наличия URL
if (empty($target_url)) {
    header('HTTP/1.1 400 Bad Request');
    die('Error: URL parameter is missing.');
}

// 3. Извлекаем хост (домен) из целевого URL
$parsed_url = parse_url($target_url);
if (!isset($parsed_url['host'])) {
    header('HTTP/1.1 400 Bad Request');
    die('Error: Invalid URL format.');
}
$target_host = $parsed_url['host'];

// 4. ОПРЕДЕЛЕНИЕ IP

// А) Получаем IP, на который ссылается URL
$target_ip = gethostbyname($target_host);

// Б) Получаем IP текущего сервера.
// Самый надежный способ для веб-сервера — спросить "какой IP у домена, на котором я сейчас открыт?"
// Это работает лучше, чем $_SERVER['SERVER_ADDR'], если сервер за NAT.
$current_domain = $_SERVER['HTTP_HOST'];
// Убираем порт, если он есть (например site.ru:8080)
if (strpos($current_domain, ':') !== false) {
    $current_domain = explode(':', $current_domain)[0];
}
$server_ip = gethostbyname($current_domain);

// 5. Логика сравнения
// Если не удалось определить IP (функция вернула сам домен) или IP не совпадают
if ($target_ip === $target_host || $server_ip === $current_domain || $target_ip !== $server_ip) {
    // Для отладки можно раскомментировать строку ниже, чтобы видеть, какие IP сравнивались:
    // die("Target: $target_ip, Server: $server_ip");
    
    header('HTTP/1.1 403 Forbidden');
    die('Forbidden');
}

// 6. Подготовка ссылки для вывода (защита от XSS)
$safe_url = htmlspecialchars($target_url, ENT_QUOTES, 'UTF-8');
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Переход по ссылке</title>
    <style>
        body {
            font-family: "Times New Roman", Times, serif;
            background-color: #fcfcfc;
            color: #000;
            padding: 20px;
            margin: 0;
        }
        h1 {
            font-size: 32px;
            font-weight: bold;
            margin-bottom: 20px;
        }
        .link-container {
            margin-bottom: 20px;
        }
        a {
            font-size: 18px;
            color: #4b0082; /* Цвет ссылки как на фото (Indigo) */
            text-decoration: underline;
            word-break: break-all;
        }
        a:hover {
            text-decoration: none;
        }
        p {
            font-size: 18px;
            margin-top: 20px;
        }
    </style>
</head>
<body>

    <h1>Вы пытаетесь перейти на сайт:</h1>
    
    <div class="link-container">
        <a href="<?php echo $safe_url; ?>"><?php echo $safe_url; ?></a>
    </div>

    <p>Нажмите на ссылку, чтобы продолжить.</p>

</body>
</html>