gpt4 book ai didi

java - 在 Java 中使用 InetAddress 进行 nslookup 时如何绕过主机文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:58 28 4
gpt4 key购买 nike

是否可以强制 Java 在进行 DNS 查找(或反向 DNS 查找)时忽略主机文件?

我一直在研究如何执行nslookup在 Java 中使用了很长一段时间,我能找到的所有示例最终都使用了此命令的一些变体:

InetAddress.getByName("123.12.12.12").getCanonicalHostName();

我遇到的问题是返回的响应取自 Windows 主机文件,而不是真正的 nslookup 。如果我从主机文件中删除该条目,则会返回正确的结果,但是一旦我将该条目放回到主机文件中,程序就会从主机文件中返回值。

如果您想知道为什么我要尝试这样做,那是因为我需要在无法修改主机文件的服务器上运行此程序 - 这是一家大公司的生产服务器,对主机文件的修改将导致许多应用程序崩溃。问题是我需要获取从 nslookup 返回的实际主机名,而不是主机文件中的值。

最佳答案

我不知道如何通过 InetAddress 类更改此行为。

Java 文档 InetAddress

Host name-to-IP address resolution is accomplished through the use of a combination of local machine configuration information and network naming services such as the Domain Name System (DNS) and Network Information Service(NIS)

看起来 Java 依赖于解析器库。 Understanding host name resolution and DNS behavior in Java

也许您可以尝试配置名称服务交换机配置文件 nsswitch.conf 以便重新排序解析器策略?

关于java - 在 Java 中使用 InetAddress 进行 nslookup 时如何绕过主机文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622458/

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