Si le Proxy est celui auquel vous faites confiance, vous pouvez essayer : (Supposons que l'IP du Proxy est 151.101.2.10
)
<?php
$trustProxyIPs = ['151.101.2.10'];
$clientIP = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : NULL;
if (in_array($clientIP, $trustProxyIPs)) {
$headers = ['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR'];
foreach ($headers as $key => $header) {
if (isset($_SERVER[$header]) && filter_var($_SERVER[$header], FILTER_VALIDATE_IP)) {
$clientIP = $_SERVER[$header];
break;
}
}
}
echo $clientIP;
Cela empêchera les clients qui demandent des informations directes de falsifier l'en-tête de transmission et d'obtenir l'adresse IP réelle par l'intermédiaire de mandataires de confiance.