Algunos proxys o firewalls no envian dicha información al servidor HTTP (Apache o el que uses) como para que queden disponibles dichas variables para que las puedas leer y acceder desde PHP con esas variables predefinidas ..
A todo esto .. si usas PHP bajo CGI es probable que no tengas esas variables en el array $HTTP_SERVER_VARS .. También influye la versión de PHP que uses ($HTTP_SERVER_VARS apareció en PHP 4.? ahora no me acuerdo xD)
En tal caso deberías usar:
getenv()
www.php.net/getenv
Fijate en el ejemplo que dán en los comentarios de los usaurios .. Es una función para obtener la IP "real" de un cliente conectado .. usan tus cabeceras HTTP que pusistes para "pasar" por el proxy y otras más .. además prueba en todos los métodos ($_SERVER, $HTTP_SERVER_VARS y getenv() )
Un saludo,