Java 无法获取计算机的IP地址

Java 无法获取计算机的IP地址,java,ip,loopback,Java,Ip,Loopback,我有一个Java应用程序,它需要特定机器的IP地址,以便在Ubuntu中通信。我尝试使用Jjava函数InetAddress.getLocalHost().getHostAddress()获取所需机器的IP地址,但它返回的环回地址是127.0.0.1。我的系统的外部IP地址是192.168.1.1。 是否有任何函数只能检索后一个函数?为什么?为什么你认为你需要自己机器的IP地址?你的意思是你需要获得另一台机器的IP地址吗?如果是这样的话,getLocalHost()很难继续。你用谷歌搜索过这个问

我有一个Java应用程序,它需要特定机器的IP地址,以便在Ubuntu中通信。我尝试使用Jjava函数
InetAddress.getLocalHost().getHostAddress()
获取所需机器的IP地址,但它返回的环回地址是127.0.0.1。我的系统的外部IP地址是192.168.1.1。
是否有任何函数只能检索后一个函数?

为什么?为什么你认为你需要自己机器的IP地址?你的意思是你需要获得另一台机器的IP地址吗?如果是这样的话,
getLocalHost()
很难继续。你用谷歌搜索过这个问题吗?除此之外,这个社区可能已经给出了答案,请参考:我得到了一个solutionimport java.net.InetAddress;导入java.net。*;导入java.util.*;类IPAddress{public static void main(字符串args[])引发异常{int i=0;枚举en=NetworkInterface.getNetworkInterfaces();while(en.hasMoreElements()){//System.out.println(i);NetworkInterface ni=(NetworkInterface)en.nextElement();枚举ee=ni.getInetAddresses();int j=0;while(ee.hasMoreElements()){InetAddress ia=(InetAddress)ee.nextElement();if(i==0&&j==1){System.out.println(ia.getHostAddress();}j++;}i++;}}不要在评论中发布代码。这是浪费时间。你可以自己看到它完全难以辨认。将其编辑到你的问题中。说到问题,你还没有回答我的任何问题。只有一个特定配置,其中你需要的IP地址是第一个NIC的第二个IP地址。这可能会在一夜之间发生变化这不是一个可行的解决方案。EJP先生……告诉我可行的解决方案……因为我需要在具有不同网络接口的不同主机上实现它。请告诉我问题的答案。为什么需要计算机的本地地址?
/**

The following code solved my problem


**/

import java.net.InetAddress;
import java.net.*;
import java.util.*;

class IPAddress
{
   public static void main(String args[]) throws Exception
   {

int i=0;    
Enumeration en = NetworkInterface.getNetworkInterfaces();
while(en.hasMoreElements()){

//System.out.println(i);
   NetworkInterface ni=(NetworkInterface) en.nextElement();
    Enumeration ee = ni.getInetAddresses();
int j=0;

while(ee.hasMoreElements()) {
        InetAddress ia= (InetAddress) ee.nextElement();
if(i==0 && j==1)
  {  System.out.println(ia.getHostAddress());

  } 

j++;}

i++;
 }

   }
}