Search code examples
javaipwifi

Java getting my IP address


I am trying to get my Internet IP address in Java but I keep getting my local address (ie: 127.0.0.1), when my IP address is 192.168.0.xxx

I am using the line:

InetAddress.getLocalHost().getHostAddress();

which seems standard to get the IP address, but it is not what I am looking for. Every tutorial says to use this line, so I am a little confused.

Could anyone please let me know how I can get my correct IP address please?


I'm running on a device that is connected to WiFi, and I'm not using any cable. I am connecting to a server using the IP given by ifconfig inet addr, and I am looking to get the device's inet addr. I could check the IP of the socket on the server side, but thought it'd be nicer if the device (client) tells the server which IP he is expecting other devices to connect on.


Solution

  • The NetworkInterface class contains all the relevant methods, but be aware that there's no such thing as "my IP". A machine can have multiple interfaces and each interface can have multiple IPs.

    You can list them all with this class but which interface and IP you choose from the list depends on what you exactly need to use this IP for.

    (InetAddress.getLocalHost() doesn't consult your interfaces, it simply returns constant 127.0.0.1 (for IPv4))