在socket.io中使用代理时没有获取远程地址

use*_*745 11 proxy node.js socket.io

在我的socket.io代码中,

socket.sockets.on('connection', function(client){ 
    var ip = client.handshake.address.address;
    ..
}
Run Code Online (Sandbox Code Playgroud)

ip总是返回127.0.0.1,这是因为服务器位于代理后面.如何正确获取远程地址?

编辑:我正在使用http-proxy

use*_*745 24

是的,这对我有用.

client.handshake.headers['x-forwarded-for'] || client.handshake.address.address;
Run Code Online (Sandbox Code Playgroud)

我正在获取远程IP地址而不是127.0.0.1

  • 确认:这是自谷歌发现的最后10个答案以来的第一个有效解决方案. (3认同)

Jac*_*Guy 6

在版本> 1.0中,语法类似:

socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress;
Run Code Online (Sandbox Code Playgroud)