2011-08-03 48 views
7

Bất kỳ ai có thể cho tôi biết cách nhận địa chỉ IP từ một khách hàng được kết nối?Apache Mina: cách nhận địa chỉ IP từ một khách hàng được kết nối

Cho đến nay tôi đã tìm thấy

session.getRemoteAddress().toString() 

và trả về một cái gì đó giống như

/192.168.1.100:49879

là ok này? Tôi có thể làm điều gì đó chỉ có thể trả về 192.168.1.100 không?

Khi tôi sử dụng Sockets Tôi đã sử dụng một cái gì đó như:

socket.getInetAddress().getHostAddress(); 

là có một cái gì đó tương tự như sử dụng IoSession trong mina apache?

Trả lời

14

Downcast the SocketAddress trả lại getRemoteAddress() thành InetSocketAddress. Sau đó, bạn có thể gọi getAddress() sẽ trả lại đối tượng InetAddress có phương thức getHostAddress() mà bạn đã sử dụng.

ví dụ:

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

inetAddress.getHostAddress(); 
Các vấn đề liên quan