2011-08-03 71 views
7

任何人都可以告訴我如何從連接的客戶端獲取IP地址嗎?Apache Mina:如何從連接的客戶端獲取IP

到目前爲止,我發現

session.getRemoteAddress().toString() 

,並返回類似

/192.168.1.100:49879

是這樣行嗎?我可以做一些只能返回192.168.1.100的東西嗎?

當我用我用類似套接字:

socket.getInetAddress().getHostAddress(); 

有Apache中使用米娜IoSession類似的東西?

回答

14

將由getRemoteAddress()返回的SocketAddress向下轉換爲InetSocketAddress。然後,您可以撥打getAddress(),這將返回一個InetAddress對象,該對象具有您以前使用的getHostAddress()方法。

例如

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

inetAddress.getHostAddress();