3

在问这个问题之前,我在这里搜索了一下。

InetAddress.getByName("SOMECONSTANTCOMPUTERNAME.xxx.CORP.xxx.COM").isReachable(10000)

这总是返回 false 或 UnknownHostException 但通过使用 cmd 并编写

ping SOMECONSTANTCOMPUTERNAME.xxx.CORP.xxx.COM

我正在获取 ping 状态。

最后道歉,如果我没有做适当的研究。

问候, icr

4

1 回答 1

3

您可能正在尝试获取 IPv6 地址的 IP 地址,并且为全局 IPv6 地址指定了 scope_id。由于 API 仅在此处提到的两种情况下引发 UnknownHostException:

取名

public static InetAddress getByName(String host) throws UnknownHostException 根据主机名确定主机的 IP 地址。主机名可以是机器名,例如“java.sun.com”,也可以是其 IP 地址的文本表示。如果提供了文字 IP 地址,则仅检查地址格式的有效性。

对于以文字 IPv6 地址指定的主机,接受 RFC 2732 中定义的格式或 RFC 2373 中定义的文字 IPv6 地址格式。还支持 IPv6 范围地址。有关 IPv6 范围地址的说明,请参见此处。

如果主机为空,则返回表示环回接口地址的 InetAddress。请参阅 RFC 3330 第 2 节和 RFC 2373 第 2.5.3 节。

参数: host - 指定的主机,或 null。

返回:给定主机名的 IP 地址。

抛出: UnknownHostException - 如果找不到主机的 IP 地址,或者为全局 IPv6 地址指定了 scope_id。

在此处了解有关 IPv6 范围地址的更多信息:

http://docs.oracle.com/javase/6/docs/api/java/net/Inet6Address.html#scoped

于 2013-06-28T09:27:47.170 回答