【问题标题】:How to make hosts files updated automaticly?如何使主机文件自动更新?
【发布时间】:2017-09-28 06:39:19
【问题描述】:

尝试使用 java 获取 LAN 中给定 IP 地址的主机名。

远程机器也被ping通了,但是返回的主机名是ip地址本身。

在其他地方阅读,这个问题是因为 system32/drivers/etc/hosts 下的“主机文件”不包含所需的信息,所以我手动添加了它,我可以从 java 中获取它程序。

奇怪的是,在此之前的某个时候,我将我的计算机连接到另一个 LAN(使用我的手机)并且不必进行文件编辑来获取远程计算机的主机名,我猜它已经可用在文件中。

我的问题是,有没有办法配置路由器,以便它自己在正确的文件中添加主机名?因为实际上当我检查路由器的主页时,(可以通过在导航器中输入 192.168.1.1 获得)显示连接到路由器的机器的主机名。

提前致谢。

【问题讨论】:

    标签: java networking lan hostname hosts


    【解决方案1】:

    通过IP查找主机名可以这样实现:java.net.InetAddress.getByName("192.168.1.1").getHostName(),或者你可以使用InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 168, (byte) 1, (byte) 1)});

    查找将涉及 /etc/hosts 和配置的 DNS 服务器。

    如果您需要更多基本的 DNS 信息,可以通过 JNDI 使用 DNS 查找(请参阅 com.sun.jndi.dns.DnsContextFactoryJNDI/DNS Service Provider)。

    在这种情况下,需要一个真正的 DNS 服务器。

    【讨论】:

    • 抱歉回复晚了。我知道这是通过调用 java.net.InetAddress.getByName("192.168.1.1").getHostName() 来完成的。但它不会返回主机名,它会返回地址,除非我在 /etc/hosts 文件中手动添加主机名。
    猜你喜欢
    • 2018-05-06
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2015-05-02
    • 2013-06-27
    相关资源
    最近更新 更多