Apache Mina: как получить IP от подключенного клиента - PullRequest
8 голосов
/ 04 августа 2011

Может кто-нибудь сказать мне, как получить IP-адрес от подключенного клиента?

Пока я нашел

session.getRemoteAddress().toString()

и возвращает что-то вроде

/ 192.168.1.100: 49879

это нормально?Могу ли я сделать что-то, что может вернуть только 192.168.1.100?

Когда я использовал Sockets, я использовал что-то вроде:

socket.getInetAddress().getHostAddress();

Есть ли что-то подобное с использованием IoSession в apache mina?

1 Ответ

17 голосов
/ 04 августа 2011

Понизить SocketAddress, возвращаемое getRemoteAddress() до InetSocketAddress. Затем вы можете вызвать getAddress(), который вернет объект InetAddress, который имеет метод getHostAddress(), к которому вы привыкли.

, например

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

inetAddress.getHostAddress();
...