12

私のsocket.ioコードでは、

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

ip は常に 127.0.0.1 を返します。これは、サーバーがプロキシの背後にあるためです。リモートアドレスを正しく取得するにはどうすればよいですか?

編集:http-proxyを使用しています

4

3 に答える 3

26

はい、これは私のために働いています。

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

127.0.0.1 ではなく、リモート IP アドレスを正しく取得しています

于 2012-06-25T09:54:44.957 に答える
7

バージョン > 1.0 では、構文は似ています。

socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress;
于 2016-05-22T04:41:27.887 に答える