<?php
/**
 * checkip_tcp.php
 * 
 * 功能：
 * 1. 获取真实客户端 IP（支持反向代理 X-Forwarded-For）
 * 2. 调用 Java HTTP 服务
 * 3. 输出结果
 */

/**
 * 获取客户端真实 IP
 * 支持 X-Forwarded-For
 */
function getClientIP() {
    $ip = '';
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        // X-Forwarded-For 可能包含多个 IP，用逗号分隔，取第一个
        $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $ip = trim($ips[0]);
    } elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

// 获取客户端 IP
$clientIP = getClientIP();

$file = '/opt/ips/' . $ip;
$handle = fopen($file, 'r');

if ($handle) {
    $firstLine = fgets($handle); // 读取第一行
    fclose($handle);

    if ($firstLine !== false && trim($firstLine) !== '') {
       return $firstLine;
    }
    
}

// Java HTTP 服务地址
$javaServerUrl = "http://127.0.0.1:8080/checkip?clientIP=" . urlencode($clientIP);

// 使用 cURL 请求 Java 服务
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $javaServerUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

$response = curl_exec($ch);
if ($response === false) {
    $response = $clientIP . "##AS7642##47201##Indian/Maldives##dv-MV";
}

curl_close($ch);

// 设置响应头
header('Content-Type: text/plain; charset=utf-8');

// 输出 Java 服务返回的内容
echo $response;

