7

Nginx の背後で Express アプリを実行しているため、ユーザーの IP を取得しようとすると、 Nginx によってヘッダー127.0.0.1に設定されている実際の IP ではなく、常に取得されます。X-Real-IPこのヘッダーを取得するにはどうすればよいですか? オブジェクト経由でそれを取得する方法はありますか?socket

コードは基本的に次のようになります。

io.sockets.on( 'connection', function( socket ) {

    var ip = /* ??? */;

    /* do something with the IP…

       … some stuff …

     */
});
4

1 に答える 1

25

NGINXまたは別のプロキシの背後で実行しているときにIPを取得するには:

var ip = req.header('x-forwarded-for') || req.connection.remoteAddress;

またはSocket.IOの場合

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

差出人:http://www.hacksparrow.com/node-js-get-ip-address.html

于 2012-11-26T20:58:56.043 に答える