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
1 2 3 4 5 6 7 8 9 |
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
1 |
$dotted_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; |
0 Comments