Using request.getRemoteAddr() returns 0:0:0:0:0:0:0:1

In your case, as you are trying to access it on your local machine,so it will return that value. But let one of your friend access it, and you will receive the expected result with getRemoteAddr

From the javadoc:

getRemoteAddr - Returns the IP address of the client or last proxy that sent the request

getLocalAddr - Returns the IP address of the interface on which the request was received.


As we move over to IPv6 from IPv4, they are changing the loopback address (localhost) to 0:0:0:0:0:0:0:1 from 127.0.0.1 thats why you are getting this address.

As for the functions:

  • getRemoteAddr() returns the clients IP

  • getLocalAddr() returns the IP of the server the application is running on


getRemoteAddr() solves your purpose but if client is behind any proxy then you will get IP address of proxy :

Returns the Internet Protocol (IP) address of the client or last proxy that sent the request.

getLocalAddr() returns the IP of the server the application is running on.