- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试将主机名解析为其对应的 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/
与 InetAddress.getByName()我希望能够区分 名称服务回复,结果是否定的 和 名称服务没有回复(没有连接到 DNS 服务器或其他) 我相信两者在支持方面存在巨大差异,即告诉某人在哪
我正在尝试添加 getByName 来获取主机名的 IP 地址并在我的 POST 命令中使用它问题是无论我在何处插入此代码都会崩溃我尝试插入 doInBackground 它也崩溃了所以我应该将它插入
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有一些使用 InetAddress.getByName 的代码。我间歇性地得到一个 UnknownHostException: java.net.UnknownHostException: goog
我正在尝试将主机名解析为其对应的 IP。 我的环境是代理服务器后面的企业网络中的 mac,通过系统首选项(自动代理配置)配置了 .pac 文件。到目前为止一切正常,我可以访问公司网络内外的资源。 在我
InetAddress.getByName 在我运行 CentOS 6 的机器上似乎真的很慢。Java 分析显示它需要 4.9 秒才能完成。 然而,Linux 的“dig”命令只需要 300 毫秒即可
我在我的应用程序中使用 InetAddress.getByName.isReachable() 一段时间,以便了解移动设备是否可以访问服务器。但是,这需要 Windows 7 中的权限,我想知道是否有
我正在尝试编写一个类,它将打印作为 InetAddress.getByName() 参数提供的 IP 地址的实际主机名。但每次我运行该程序时,IP 地址都会打印在控制台上,而不是主机名。 This i
意识到我不得不担心基于网络的线程会对我的 UI 线程造成严重破坏,我经历了为我的 TCP/IP 网络乒乓命令和应用程序之间的响应创建自定义处理程序和自定义线程的整个过程远程服务器。效果很好。 (您会在
与 java -version java version "1.8.0_72" Java(TM) SE Runtime Environment (build 1.8.0_72-b15) Java Ho
我正在尝试使用以下代码获取 INetAddress: try { var address = InetAddress.GetByName ("google.com"); System.Diag
我想按任务顺序创建任务 task fabricUploadDebug(type: Exec) { dependsOn 'clean' dependsOn 'compileDebugSources' d
我做了一个: java.net.InetAddress serverAddr; try { serverAddr = java.net.InetAddress.getByName(Server
如何删除 InetAddress.getbyName 输出中的斜线? 更新 谢谢大家,我做到了。 解决方案之一是: String ip_old = myInetaddress.toString();
我一直遇到 DNS 查找 IPv6 地址的问题,我似乎找不到相关的好信息。 我正在尝试使用 InetAddress.getByName("ipv6.local.com") 查找 IPv6 地址。它会抛
我一直在服务器上使用以下代码。 public SocketServer(int port,String inetAddress) throws IOException { this.p
我不懂java,但正如您从这个问题( Oracle Regular Expression (REGEXP_LIKE) Too Long Error - ORA-12733 )中看到的那样,java似乎
我的目标是尽快检查大量域名。方法 InetAddress.getByName() 对我来说似乎有点慢。在 PHP 中,有 gethostbyname('www.example.com') ,它似乎工作
本文整理了Java中org.bouncycastle.asn1.x9.X962NamedCurves.getByName()方法的一些代码示例,展示了X962NamedCurves.getByName
本文整理了Java中com.sun.star.container.XNameAccess.getByName()方法的一些代码示例,展示了XNameAccess.getByName()的具体用法。这些
我是一名优秀的程序员,十分优秀!