Note that there are some explanatory texts on larger screens.

plurals
  1. POInetAddress.getLocalHost().getHostAddress() is returning 127.0.1.1
    text
    copied!<p>My question is similar to <a href="https://stackoverflow.com/q/2381316/1175065">this</a> question . I want to get the real IP of my machine (not 127.0.0.1) but strange, the below code in my Ubuntu is returning 127.0.1.1</p> <pre><code>InetAddress.getLocalHost().getHostAddress() </code></pre> <p>Below is my complete code, originally posted in SO at <a href="https://stackoverflow.com/a/7334091/1175065">here</a></p> <pre><code>public String getMachineIP() { try { String hostIP = InetAddress.getLocalHost().getHostAddress(); if (!hostIP.equals("127.0.0.1")) { return hostIP; } /* * Above method often returns "127.0.0.1", In this case we need to * check all the available network interfaces */ Enumeration&lt;NetworkInterface&gt; nInterfaces = NetworkInterface .getNetworkInterfaces(); while (nInterfaces.hasMoreElements()) { Enumeration&lt;InetAddress&gt; inetAddresses = nInterfaces .nextElement().getInetAddresses(); while (inetAddresses.hasMoreElements()) { String address = inetAddresses.nextElement() .getHostAddress(); if (!address.equals("127.0.0.1")) { return address; } } } } catch (UnknownHostException e1) { System.err.println("Error = " + e1.getMessage()); } catch (SocketException e1) { System.err.println("Error = " + e1.getMessage()); } return null; } </code></pre> <p>The above code is returning 127.0.1.1 whereas <code>ifconfig</code> on my Ubuntu machine is giving below output</p> <pre><code>root@dell:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:21:70:b7:30:cd UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:28 Base address:0x6000 eth1 Link encap:Ethernet HWaddr 00:22:68:d3:02:b5 inet addr:192.168.2.112 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::222:68ff:fed3:2b5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23827 errors:0 dropped:0 overruns:0 frame:32515 TX packets:23200 errors:46 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:22027719 (22.0 MB) TX bytes:3778268 (3.7 MB) Interrupt:19 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:402 errors:0 dropped:0 overruns:0 frame:0 TX packets:402 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:29197 (29.1 KB) TX bytes:29197 (29.1 KB) </code></pre> <p>I found 127.0.1.1 entry in host file (Strange to me, since I never updated this file)</p> <pre><code>root@dell:~# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 dell # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts </code></pre> <p>How to get the real IP of my machine (not 127.0.0.1)? I am looking ONLY for IPv4 address excluding <code>127.0.0.0/8 subnet</code></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload