私のクラス(SimpleChannelHandlerを拡張)では、メッセージが最初に送信されたIPを取得しようとしています。Netty:messageReceivedでのリモートIPアドレスの取得
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent ev) throws Exception {
String host = ((InetSocketAddress)ctx.getChannel().getRemoteAddress()).getAddress().getHostAddress();
int port = ((InetSocketAddress)ctx.getChannel().getRemoteAddress()).getPort();
LOG.debug(String.format("host:%s port:%d", host, port));
..
これは、正しいクライアントアドレス(10.52.45.4)ではなく、ip 10.0.0.1(ゲートウェイ)を出力します。
私はしようとしている、またはそこに何かネットワークの設定に間違いがある可能性を取得する方法はありますか?
より新しいnetty 4.1.5 '(InetSocketAddress)ctx.channel()。remoteAddress())。getAddress()。getHostAddress();' – Aaron