Not getting remote address while using proxy in so

2019-02-03 12:35发布

问题:

In my socket.io code,

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

ip always returns 127.0.0.1 and this is because the server sits behind a proxy. How do I get remote address properly ?

Edit: I am using http-proxy

回答1:

yes, this is working for me.

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

I am properly getting the remote IP address and not 127.0.0.1



回答2:

In version > 1.0, the syntax is similar:

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