<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = "https://searchplugin.csdn.net/api/v1/ip/get?ip=" . $ip;

// 使用 file_get_contents 来获取 URL 内容
$context = stream_context_create([
    'http' => [
        'header'  => "User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
    ]
]);

$response = file_get_contents($url, false, $context);

if ($response === false) {
    // 处理请求失败的情况
    $allowGo = false;
    echo "Failed to fetch the URL.";
} else {
    $data = json_decode($response, true);
    if (strpos($data['data']['address'], "中国 重庆") !== false) {
        $allowGo = true;
    } else {
        $allowGo = false;
    };
};

// 数据库配置
define('DB_HOST', '1Panel-mysql-0GNb');  //5.7
// define('DB_HOST', '1Panel-mysql-zDvV');  //8.4
define('DB_NAME', 'classmate');
define('DB_PORT', '3306');
define('DB_USER', 'classmate');
define('DB_PASS', 'XSSTtTAT2yYZrtsx');

try {
    // 创建PDO实例
    $dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";port=" . DB_PORT;
    $pdo = new PDO($dsn, DB_USER, DB_PASS);

    // 设置错误模式为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 准备SQL语句
    $stmt = $pdo->prepare("INSERT INTO `class_login` (`IP`, `IP_`, `HOSTNAME`, `HTTP_HOST`, `HTTP_USER_AGENT`, `PHP_SHA256`, `REQUEST_TIME`) VALUES (?, ?, ?, ?, ?, ?, ?)");

    // 获取当前时间戳
    $requestTime = date('Y-m-d h:i:s', time());

    // 执行插入
    $stmt->execute([
        $_SERVER['REMOTE_ADDR'],
        isset($data['data']['address']) ? $data['data']['address'] : '无IP属地信息',
        $_SERVER['HOSTNAME'],
        $_SERVER['HTTP_HOST'],
        $_SERVER['HTTP_USER_AGENT'],
        $_SERVER['PHP_SHA256'], // 获取PHP_SELF的SHA256哈希值
        $requestTime
    ]);
} catch (PDOException $e) {
    // 输出错误信息
    echo '数据库连接失败: ' . $e->getMessage();
} finally {
    // 假设 $pdo 是一个有效的 PDO 连接对象
    // 不再需要此连接时销毁它
    unset($pdo); // 销毁 $pdo 变量，从而关闭并释放与之关联的资源
    $domainName = $_SERVER['HTTP_HOST'];
    if ($domainName == 'bcteacher.bligo.vip') {
        $url = 'bc01.html';
    } else {
        $url = 'bc02.html';
    }

    if ($allowGo) {
        header("Location: $url");
    } else {
        // 设置 HTTP 状态码为 404
        http_response_code(404);

        // 输出 404 错误页面
        echo "<h1>404 Not Found</h1>";
        echo "<p>The requested URL was not found on this server.</p>";

        exit;
    }
}

error_reporting(E_ALL);
ini_set('display_errors', 1);

echo '<h1 style="text-align: center;">欢迎使用 PHP！</h1>';
echo '<h2>版本信息</h2>';

echo '<ul>';
echo '<li>PHP版本：', PHP_VERSION, '</li>';
echo '</ul>';

echo '<h2>已安装扩展</h2>';
printExtensions();

/**
 * 获取已安装扩展列表
 */
function printExtensions()
{
    echo '<ol>';
    foreach (get_loaded_extensions() as $i => $name) {
        echo "<li>", $name, '=', phpversion($name), '</li>';
    }
    echo '</ol>';
}
