【发布时间】:2012-01-03 09:58:14
【问题描述】:
我正在使用 Java 在一个类中构建一个简单的方法,该方法将获取用户机器的 LAN IPv4 地址。对于大多数部分,这很好用,除了一个例外......我得到的IP地址是我的VirtualBox以太网适配器的IPv4地址,正如我在命令提示符中输入ipconfig所证明的那样:
下面是获取IP地址的方法:
import java.net.InetAddress;
import java.net.UnknownHostException;
...
private String getIP() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
return "0.0.0.0";
}
}
谁能告诉我如何解决这个问题?我想避免假设最终用户不会安装 VirtualBox(或类似的东西)。
感谢您的宝贵时间。
【问题讨论】:
-
这不是和stackoverflow.com/questions/7348711/…有点重复吗?
-
不完全。他们正在寻找主机名。我正在寻找主机地址。
-
我能够很好地获取我的主机名...
-
仍然,适用于获取主机名的 cmets 也适用于获取主机地址。基本上,你不能,因为你的机器可能有多个地址,或者可能被机器本身不可见的某些地址从外部知道(例如,使用 NAT 时)。
标签: java ip-address virtualbox lan ipv4