8

谁能告诉我如何从连接的客户端获取 IP 地址?

到目前为止我发现

session.getRemoteAddress().toString()

并返回类似

/192.168.1.100:49879

这个可以吗?我可以做一些只能返回 192.168.1.100 的事情吗?

当我使用套接字时,我使用的是类似的东西:

socket.getInetAddress().getHostAddress();

在 apache mina 中使用 IoSession 有类似的东西吗?

4

1 回答 1

18

SocketAddress返回的内容向下getRemoteAddress()转换为 a InetSocketAddress。然后,您可以调用getAddress()which 将返回一个具有您习惯InetAddress的方法的对象。getHostAddress()

例如

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

inetAddress.getHostAddress();
于 2011-08-03T21:23:58.650 回答