2012-06-25 13 views
9

En mi código socket.io,dirección remota durante el uso de proxy en socket.io

socket.sockets.on('connection', function(client){ 
    var ip = client.handshake.address.address; 
    .. 
} 

IP 127.0.0.1 siempre vuelve y esto se debe a que el servidor se encuentra detrás de un proxy. ¿Cómo obtengo la dirección remota correctamente?

Editar: Estoy utilizando http-proxy

+0

Verificando client.handshake.headers [ 'x -forwarded-for '] || client.handshake.address.address; trabajará. – user644745

Respuesta

22

sí, esto es trabajo para mí.

client.handshake.headers['x-forwarded-for'] || client.handshake.address.address; 

Me estoy haciendo correctamente la dirección IP remota y no 127.0.0.1

+3

Confirmado: Esta es la primera solución de trabajo desde las últimas 10 respuestas que encontré en Google. – DanFromGermany

+0

esto no funcionó para mí. Estoy en un servidor de red/proxy posterior, usando 1.3.2 – Rachael

+0

, este solo funciona para el socket 0.9. ¿Qué tal para la versión> 1.0? –

4

En la versión> 1.0, la sintaxis es similar:

socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress; 
Cuestiones relacionadas