Netty: obtenir l'adresse ip distante dans messageReceived

Dans ma classe (s'étend SimpleChannelHandler) je vais essayer d'obtenir l'adresse ip avec laquelle le message a été envoyé.

@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));

    ..

Ce imprime ip 10.0.0.1 (passerelle), au lieu de la bonne adresse du client (10.52.45.4).

Est-il possible d'obtenir l'adresse ip, je suis en train d'ou pourrait-il y avoir quelque chose de mal avec la configuration du réseau ?

Juste une légère mise à jour dans la syntaxe avec les nouveaux netty 4.1.5 ((InetSocketAddress )ctx.channel().remoteAddress()).getAddress().getHostAddress();

OriginalL'auteur northernd | 2012-08-08