Lorsqu’un site est derrière un reverse proxy (comme Varnish Cache), le php ne reçoit dans la variable $_SERVER[‘REMOTE_ADDR’] que l’adresse IP du reverse proxy. Afin d’accéder à l’IP du client, il faut ajouter une directive au fichier VCL de Varnish et modifier le code php permettant de récupérer l’ip.
Ajout dans le fichier .vcl de Varnish
sub vcl_recv { if (req.restarts == 0) { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } }
Dans le php, on récupère l’IP du client en utilisant
$dotted_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
0 Comments