ServerSocket + client Socket - how do I get IP address of client?

Alex Blundell picture Alex Blundell · Mar 14, 2013 · Viewed 18.8k times · Source

I have a ServerSocket instance which is listening for connections. When a client connects to it, I would like to get the IP of the connected socket, but can't seem to find the right method to do so.

public void start() {
    listenSocket = new ServerSocket(port);
    connectionSocket = listenSocket.accept();
}

I've tried calling the following with no luck:

connectionSocket.getLocalAddress();
connectionSocket.getInetAddress.getHostAddress();
listenSocket.getLocalSocketAddress();

None of the above return the correct IP. They either return "/0:0:0:0:0:0:0:1%0" or "0.0.0.0".

What am I doing wrong?

Answer

Shmil The Cat picture Shmil The Cat · Mar 14, 2013
connectionSocket.getRemoteSocketAddress();