gpt4 book ai didi

java - InetAddress.getByName 在代理后面失败

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:01 25 4
gpt4 key购买 nike

我正在尝试将主机名解析为其对应的 IP。

我的环境是代理服务器后面的企业网络中的 mac,通过系统首选项(自动代理配置)配置了 .pac 文件。到目前为止一切正常,我可以访问公司网络内外的资源。

在我的网络中解析主机工作得很好: InetAddress.getByName("host.local");

但是当我使用外部主机名时,我得到一个 UnknownHostException: InetAddress.getByName("google.com");

产生

Exception in thread "main" java.net.UnknownHostException: google.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1201)
at java.net.InetAddress.getAllByName0(InetAddress.java:1154)
at java.net.InetAddress.getAllByName(InetAddress.java:1084)
at java.net.InetAddress.getAllByName(InetAddress.java:1020)
at java.net.InetAddress.getByName(InetAddress.java:970)
at Test.main(Test.java:67)

(我对这里的 Inet6AddressImpl 有点惊讶)

据我了解,InetAddress.getByName 使用 native 机制来解析主机名。所以我不认为错误是由 java jvm 中缺少代理配置引起的。

但是,如果一切正常,它还能是什么?

一些(可能)有用的附加信息:

  • 我正在使用 MacBook,ifconfig 显示接口(interface) lo0、gif0、stf0、en0、fw0、en1 -> 连接到网络,具有 ipv4 地址。

  • 控制台上的
  • nslookup google.com 返回 ** 服务器找不到 google.com:NXDOMAIN

  • 网络中一台 windows 机器上的相同代码产生了相同的异常

关于这个错误的原因有什么想法吗?还是有其他方法可以在 java 中解析主机名?

最佳答案

您的公司 DNS 服务器阻止您解析任何 Interent 域(他们可能不希望人们浏览非公司环境)。

您的 nslookup 查询失败这一事实支持了这一点。

如果您对公司政策没有投票权,并且您的开发机器必须留在公司场所,那么您无能为力。

关于java - InetAddress.getByName 在代理后面失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6911590/

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