$IP= getenv("HTTP_X_FORWARDED_FOR" )
? getenv("HTTP_X_FORWARDED_FOR" )
: getenv("REMOTE_ADDR" );
s'il y a un proxy, il prend l'adresse derrière le proxy(non anonyme), sinon, il prend l'adresse.
pour bien fare, il faudrait tester aussi, si le proxy n'est pas une adresse privée (proxy sur une paserelle privée, mais est-ce possible puisque avec un snat, il masque l'ip interne...)