首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Java要获得主机名的缓存版本?

问为什么Java要获得主机名的缓存版本?
EN

Stack Overflow用户
提问于 2016-04-17 19:59:50
回答 1查看 479关注 0票数 0

请参阅以下问题:

758432

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

代码语言:javascript
复制
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;
} 

来电者:

代码语言:javascript
复制
InetAddress ip = getFirstNonLoopbackAddress(true, false);
this.machineName = ip.getCanonicalHostName();

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

如何获得/etc/主机名文件中的真正机器/主机名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-17 20:25:13

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

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

或者尝试以下方法:Flush DNS using Java

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36681527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档