public interface InetAddressResolver
该接口定义了查找主机名和IP地址的操作。
InetAddress
将所有查找操作委托给系统范围的解析器。
系统范围的解析器可以通过部署实现 InetAddressResolverProvider
来进行自定义。
- 自 JDK 版本:
- 18
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic final class
LookupPolicy
对象描述了可以应用于查找操作的特征。 -
Method Summary
Modifier and TypeMethodDescriptionlookupByAddress
(byte[] addr) 查找与提供的原始IP地址对应的主机名。lookupByName
(String host, InetAddressResolver.LookupPolicy lookupPolicy) 给定主机名,返回与提供的主机名关联的请求地址族的IP地址流。
-
Method Details
-
lookupByName
Stream<InetAddress> lookupByName(String host, InetAddressResolver.LookupPolicy lookupPolicy) throws UnknownHostException 给定主机名,返回与提供的主机名关联的请求地址族的IP地址流。host
应该是一个机器名,例如 "www.example.com
",而不是其IP地址的文本表示。 对给定的host
名称不执行验证:如果提供了文本表示,可能会导致名称解析失败并可能抛出UnknownHostException
。地址族类型和地址顺序由
LookupPolicy
实例指定。 可以使用InetAddressResolver.LookupPolicy.characteristics()
获取查找操作的特征。 如果提供了InetAddressResolver.LookupPolicy.IPV4
和InetAddressResolver.LookupPolicy.IPV6
特征,则此方法返回 IPV4 和 IPV6 族的地址。- 参数:
-
host
- 指定的主机名 -
lookupPolicy
- 地址查找策略 - 返回:
- 请求主机的IP地址流
- 抛出:
-
NullPointerException
- 如果任一参数为null
-
UnknownHostException
- 如果找不到host
的IP地址 - 参见:
-
lookupByAddress
查找与提供的原始IP地址对应的主机名。addr
参数以网络字节顺序表示:地址的最高位字节在addr[0]
中。IPv4 地址字节数组必须为 4 字节长,IPv6 字节数组必须为 16 字节长。
- 参数:
-
addr
- 表示原始IP地址的字节数组 - 返回:
-
表示主机名映射的
String
- 抛出:
-
UnknownHostException
- 如果找不到指定IP地址的主机名 -
IllegalArgumentException
- 如果提供的字节数组长度与有效IP地址长度不对应 -
NullPointerException
- 如果 addr 为null
-