【发布时间】:2018-12-11 15:39:42
【问题描述】:
我有一个 Java 应用程序,它需要特定机器的 IP 地址才能在 Ubuntu 中进行通信。我尝试使用 Jjava 函数InetAddress.getLocalHost().getHostAddress() 来获取所需机器的 IP 地址,但它返回的环回地址为 127.0.0.1。我系统的外部 IP 地址是 192.168.1.1。
有没有什么函数可以让我只检索后一个?
【问题讨论】:
-
为什么?为什么你认为你需要自己机器的 IP 地址?你的意思是你需要得到另一台机器的IP地址吗?如果是这样,
getLocalHost()很难继续下去。 -
你用谷歌搜索过这个吗?除此之外,这个社区可能已经回答了,请参考:stackoverflow.com/questions/2381316/…
-
我有一个解决方案import java.net.InetAddress;导入java.net.*;导入 java.util.*;类 IPAddress { public static void main(String args[]) throws Exception { int i=0;枚举 en = NetworkInterface.getNetworkInterfaces(); while(en.hasMoreElements()){ //System.out.println(i); NetworkInterface ni=(NetworkInterface) en.nextElement();枚举 ee = ni.getInetAddresses();诠释 j = 0; while(ee.hasMoreElements()) { InetAddress ia= (InetAddress) ee.nextElement(); if(i==0 && j==1) { System.out.println(ia.getHostAddress()); } j++;}我++; } } }
-
不要在 cmets 中发布代码。这是浪费时间。您可以亲眼看到它完全难以辨认。将其编辑到您的问题中。说到问题,你还没有回答我的任何问题。