2012-06-25 9 views
9

にプロキシを使用している間、リモートアドレスを取得私socket.ioコードでsocket.io

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

IPは常に127.0.0.1を返し、サーバがプロキシの背後に座っているので、これがあるわけではありません。 リモートアドレスを正しく取得するにはどうすればよいですか?

編集:私は、HTTPプロキシ

+0

client.handshake.headersかどうかの確認[ 'X -forwarded-for '] || client.handshake.address.address;働くでしょう。 – user644745

答えて

22

を使用していますはい、これは私のために働いています。

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

私が正しく、バージョン> 1.0で

+3

確認済み:これは私がgoogleで見つけた最後の10回の回答以来の最初の解決策です。 – DanFromGermany

+0

これは私のためには機能しませんでした。私はネットワーク上のサーバ/プロキシの後ろに1.3.2を使用しています – Rachael

+0

これはソケット0.9でのみ動作します。バージョン1.0以上はいかがですか? –

4

を127.0.0.1リモートIPアドレスを取得していない午前、構文は似ています

socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress; 
関連する問題