2011-08-03 14 views
7

¿Alguien puede decirme cómo obtener la dirección IP de un cliente conectado?Apache Mina: cómo obtener la IP de un cliente conectado

Hasta ahora he encontrado

session.getRemoteAddress().toString() 

y devuelve algo así como

/192.168.1.100:49879

es esta bien? ¿Puedo hacer algo que solo puede devolver 192.168.1.100?

Cuando solía sockets que estaba usando algo como:

socket.getInetAddress().getHostAddress(); 

hay algo similar usando IoSession en Mina Apache?

Respuesta

14

Downcast el SocketAddress devuelto por getRemoteAddress() a un InetSocketAddress. A continuación, puede llamar al getAddress() que devolverá un objeto InetAddress que tiene el método getHostAddress() al que está acostumbrado.

p. Ej.

InetSocketAddress socketAddress = (InetSocketAddress) session.getRemoteAddress(); 
InetAddress inetAddress = socketAddress.getAddress(); 

inetAddress.getHostAddress(); 
Cuestiones relacionadas