<?php
/*
 * 追风科学院 404 页 - 服务端信息端点
 * 提供：客户端公网 IP、IP 来源、服务端时间
 * 部署位置：static.zhuifeng.org 的 public_html/api/info.php
 * 访问路径：https://static.zhuifeng.org/api/info.php
 *
 * 真实 IP 读取顺序（阿里云 ESA 接入后）：
 *   1. ali-real-client-ip   —— ESA 托管转换"添加真实客户端IP标头"（需在 ESA 控制台开启，最可信）
 *   2. ali-cdn-real-ip      —— 阿里云 CDN/DCDN 默认透传头
 *   3. True-Client-IP       —— ESA 规则引擎自定义头（ip.src）
 *   4. X-Forwarded-For / X-Real-IP —— 通用代理头
 *   5. REMOTE_ADDR          —— 直连（此时为 ESA 边缘节点 IP）
 */
header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Access-Control-Allow-Origin: *');

$ip = '';
$source = '';
if (!empty($_SERVER['HTTP_ALI_REAL_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_ALI_REAL_CLIENT_IP'];
    $source = '阿里云 ESA (ali-real-client-ip)';
} elseif (!empty($_SERVER['HTTP_ALI_CDN_REAL_IP'])) {
    $ip = $_SERVER['HTTP_ALI_CDN_REAL_IP'];
    $source = '阿里云 CDN/DCDN (ali-cdn-real-ip)';
} elseif (!empty($_SERVER['HTTP_TRUE_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_TRUE_CLIENT_IP'];
    $source = 'True-Client-IP';
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $parts = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $ip = trim($parts[0]);
    $source = 'X-Forwarded-For';
} elseif (!empty($_SERVER['HTTP_X_REAL_IP'])) {
    $ip = $_SERVER['HTTP_X_REAL_IP'];
    $source = 'X-Real-IP';
} else {
    $ip = $_SERVER['REMOTE_ADDR'] ?? '';
    $source = '服务端直连 (REMOTE_ADDR)';
}

/* 访问者位置（ESA 托管转换"添加访问者位置标头"，头名 ali-ip-country，ISO 3166-1 Alpha2） */
$country = strtolower($_SERVER['HTTP_ALI_IP_COUNTRY'] ?? '');
$countryNames = array(
    'cn' => '中国内地', 'hk' => '中国香港', 'mo' => '中国澳门', 'tw' => '中国台湾',
    'us' => '美国', 'jp' => '日本', 'kr' => '韩国', 'kp' => '朝鲜', 'sg' => '新加坡',
    'my' => '马来西亚', 'th' => '泰国', 'vn' => '越南', 'ph' => '菲律宾', 'id' => '印度尼西亚',
    'in' => '印度', 'gb' => '英国', 'de' => '德国', 'fr' => '法国', 'ru' => '俄罗斯',
    'ca' => '加拿大', 'au' => '澳大利亚', 'nl' => '荷兰', 'it' => '意大利', 'es' => '西班牙',
    'br' => '巴西', 'za' => '南非', 'eg' => '埃及', 'ae' => '阿联酋', 'sa' => '沙特阿拉伯',
    'ch' => '瑞士', 'se' => '瑞典', 'fi' => '芬兰', 'no' => '挪威', 'dk' => '丹麦',
    'pl' => '波兰', 'ua' => '乌克兰', 'tr' => '土耳其', 'ir' => '伊朗', 'il' => '以色列',
    'nz' => '新西兰', 'mx' => '墨西哥', 'ar' => '阿根廷', 'cl' => '智利', 'pt' => '葡萄牙',
    'be' => '比利时', 'at' => '奥地利', 'ie' => '爱尔兰', 'cz' => '捷克', 'gr' => '希腊',
    'hu' => '匈牙利', 'ro' => '罗马尼亚', 'bg' => '保加利亚', 'pk' => '巴基斯坦', 'bd' => '孟加拉国',
    'lk' => '斯里兰卡', 'np' => '尼泊尔', 'mm' => '缅甸', 'kh' => '柬埔寨', 'la' => '老挝',
    'mn' => '蒙古', 'kz' => '哈萨克斯坦', 'uz' => '乌兹别克斯坦', 'et' => '埃塞俄比亚', 'ke' => '肯尼亚',
    'ng' => '尼日利亚', 'gh' => '加纳', 'ma' => '摩洛哥', 'dz' => '阿尔及利亚',
);
$countryName = isset($countryNames[$country]) ? $countryNames[$country] : '';

echo json_encode(array(
    'ip'           => $ip,
    'ip_source'    => $source,
    'server_time'  => gmdate('Y-m-d H:i:s') . ' UTC',
    'country'      => $country,
    'country_name' => $countryName,
), JSON_UNESCAPED_UNICODE);
