getClientIp

<?php
// 获取访问者IP地址
function getClientIp() {
    // 检查是否使用代理
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } 
    // 检查代理转发的IP
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        // HTTP_X_FORWARDED_FOR可能包含多个IP,取第一个
        $ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0];
    } 
    // 直接获取REMOTE_ADDR
    else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    
    // 验证IP格式
    if (filter_var($ip, FILTER_VALIDATE_IP)) {
        return $ip;
    } else {
        return '无法获取有效的IP地址';
    }
}

// 获取IP
$clientIp = getClientIp();
?>

<?php echo $clientIp; ?>