2011-06-29 18 views
1

私は、私たちのJBossネッティーサーバへの要求ごとに利用者のIP ADYさんがログインする必要があります。私は思った:のJBoss網状

正しい答えでしたが、これは常に127.0.0.1を返し、私は実際のクライアントIPが必要です。 Railsから来て、彼らがdocをどのように見つけたか調べました。

発信元IPアドレスを決めます。 REMOTE_ADDRが標準ですが、ユーザーがプロキシを使用していない場合は が失敗します。 HTTP_CLIENT_IPおよび/または HTTP_X_FORWARDED_FORは 個のプロキシによって設定されるため、 REMOTE_ADDRがプロキシの場合は、これらを確認してください。 HTTP_X_FORWARDED_FORは、 の連鎖したプロキシが複数ある場合は、区切りリストとしてカンマ - です。信頼されていない最後のアドレス は、 発信元IPです。

Nettyのすべてのヘッダーを確認する必要がありますか、それとも簡単ですか?

答えて

3

私は答えがあります。 MessageEventの代わりにChannelHandlerContextを使用すると、このトリックが実行されます。

SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress(); 
関連する問題