gpt4 book ai didi

java - 为什么 Java 会获取主机名的缓存版本?

转载 作者:行者123 更新时间:2023-12-02 03:42:30 25 4
gpt4 key购买 nike

请引用这个问题:

https://askubuntu.com/questions/758432/is-there-another-place-to-host-machine-name?noredirect=1#comment1132454_758432

如您所见,我使用此方法来获取机器名称:

private InetAddress getFirstNonLoopbackAddress(boolean preferIpv4, boolean preferIPv6) throws SocketException {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface i = en.nextElement();
for (Enumeration<InetAddress> en2 = i.getInetAddresses(); en2.hasMoreElements();) {
InetAddress addr = 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;
}

调用者:

InetAddress ip = getFirstNonLoopbackAddress(true, false);
this.machineName = ip.getCanonicalHostName();

但结果是我在 Ubuntu 中更改它之前得到了旧的机器名称。

如何获取/etc/hostname 文件中的真实机器/主机名?

最佳答案

DNS 总是缓存名称。您应该在您正在使用的操作系统中执行刷新 dns;在 Ubuntu 上我发现了关于如何刷新 dns 的信息:

https://askubuntu.com/questions/414826/how-to-flush-dns-in-ubuntu-12-04

或者尝试这种方法: Flush DNS using Java

关于java - 为什么 Java 会获取主机名的缓存版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36681527/

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