gpt4 book ai didi

java - 如何通过Java获取linux上电脑的ip?

转载 作者:IT王子 更新时间:2023-10-29 00:28:04 26 4
gpt4 key购买 nike

如何通过Java获取linux上电脑的ip?

我在网上搜索了一些例子,我发现了一些关于 NetworkInterface 类的东西,但我无法理解如何获得 Ip 地址。

如果同时运行多个网络接口(interface)会怎样?将返回哪个 IP 地址。

我非常感谢一些代码示例。

P.S:到目前为止,我一直使用 InetAddress 类,这对于跨平台应用程序来说是一个糟糕的解决方案。 (赢/Linux)。

最佳答案

不要忘记在外部不可见的环回地址。这是一个提取第一个非环回 IP(IPv4 或 IPv6)的函数

private static InetAddress getFirstNonLoopbackAddress(boolean preferIpv4, boolean preferIPv6) throws SocketException {
Enumeration en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface i = (NetworkInterface) en.nextElement();
for (Enumeration en2 = i.getInetAddresses(); en2.hasMoreElements();) {
InetAddress addr = (InetAddress) en2.nextElement();
if (!addr.isLoopbackAddress()) {
if (addr instanceof Inet4Address) {
if (preferIPv6) {
continue;
}
return addr;
}
if (addr instanceof Inet6Address) {
if (preferIpv4) {
continue;
}
return addr;
}
}
}
}
return null;
}

关于java - 如何通过Java获取linux上电脑的ip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/901755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com