如何自动更新主机文件?

时间:2017-09-28 06:39:19

标签: java networking lan hostname hosts

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

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

在其他地方读,这个问题是因为"托管文件"在system32 / drivers / etc / hosts下没有包含所需的信息,所以我手动添加它,并且我能够从java程序中获取它。

奇怪的是,在此之前的某个时间,我将计算机连接到另一个局域网(使用我的手机),并且没有必要进行文件编辑以获取主机名远程机器,我猜它已经在文件中可用了。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

按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服务器。