此类表示 Internet 协议 (IP) 地址。
IP 地址是 IP 使用的 32 位或 128 位无符号数字,IP 是一种较低级别的协议,UDP 和 TCP 等协议基于该协议构建。 IP 地址架构由 RFC 790:分配的号码、 RFC 1918:专用互联网的地址分配、RFC 2365:管理范围内的 IP 多播 和 RFC 2373:IP 版本 6 寻址架构 定义。 InetAddress 的一个实例由一个 IP 地址和可能的其对应的主机名组成(取决于它是否使用主机名构造或是否已经进行了反向主机名解析)。
地址类型
单播和多播地址类型的描述
地址类型
Description
单播
单个接口的标识符。发送到单播地址的数据包将传送到该地址标识的接口。未指定的地址——也称为任何本地地址或通配符地址。它绝不能分配给任何节点。它表示没有地址。它的一个使用示例是作为绑定的目标,它允许服务在任何接口上接受客户端连接,以防服务主机有多个接口。
这未指定address 不得用作 IP 数据包的目标地址。
这环回地址——这是分配给环回接口的地址。发送到此 IP 地址的任何内容都会循环并成为本地主机上的 IP 输入。这个地址经常在测试客户端时使用。
组播
一组接口的标识符(通常属于不同的节点)。发送到多播地址的数据包将传送到该地址标识的所有接口。
IP地址范围
链接本地地址设计用于在单个链路上寻址,用于自动地址配置、邻居发现或没有路由器时。
Site-local地址旨在用于在不需要全局前缀的情况下在站点内部寻址。
全球的地址在互联网上是唯一的。
IP 地址的文本表示IP 地址的文本表示是特定于地址族的。
IPv4地址格式请参考Inet4Address#format; IPv6地址格式请参考Inet6Address#format。
几个系统属性 会影响 IPv4 和 IPv6 地址的使用方式。
主机名解析
InetAddress 类提供了将主机名解析为其 IP 地址的方法,反之亦然。实际决议委托给 InetAddress 解析器 。
主机名到 IP 地址的解析将主机名映射到 IP 地址。对于任何主机名,都会返回其对应的 IP 地址。
反向名称解析意味着对于任何 IP 地址,返回与 IP 地址关联的主机。
内置的 InetAddress 解析器实现通过使用本地机器配置信息和网络命名服务(例如域名系统 (DNS) 和轻量级目录访问协议)的组合来执行主机名到 IP 地址的解析,反之亦然。 LDAP)。内置解析器默认使用的特定命名服务取决于本地计算机的配置。
InetAddress 具有 InetAddress 解析器的服务提供者机制,允许使用自定义 InetAddress 解析器而不是内置实现。 InetAddressResolverProvider 是服务提供者类。它的 API 文档提供了有关此机制的所有详细信息。
Inet地址缓存InetAddress 类有一个缓存来存储成功和不成功的主机名解析。
默认情况下,当安装安全管理器时,为了防止 DNS 欺骗攻击,肯定的主机名解析结果会被永久缓存。当未安装安全管理器时,默认行为是在有限(依赖于实现)时间段内缓存条目。主机名解析不成功的结果会缓存很短的时间(10 秒)以提高性能。
如果不需要默认行为,则可以将 Java 安全属性设置为不同的生存时间 (TTL) 值以进行积极缓存。同样,系统管理员可以在需要时配置不同的负缓存 TTL 值。
两个 Java 安全属性控制用于正负主机名解析缓存的 TTL 值:
networkaddress.cache.ttl
指示从名称服务成功查找名称的缓存策略。该值被指定为一个整数,以指示缓存成功查找的秒数。默认设置是缓存实现特定的时间段。
值 -1 表示“永远缓存”。
networkaddress.cache.negative.ttl(默认值:10)
指示来自名称服务的不成功名称查找的缓存策略。该值被指定为一个整数,以指示为不成功的查找缓存失败的秒数。
值 0 表示“从不缓存”。值 -1 表示“永远缓存”。