【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131590559
出自【进步*于辰的博客】
因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。
所有已实现的接口:
Serializable
直接已知子类:
Inet4Address、Inet6Address
public class InetAddress extends Object implements Serializable
此类表示互联网协议 (IP) 地址。
IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。IP 地址的体系结构是由 RFC 790:Assigned Numbers、 RFC 1918:Address Allocation for Private Internets、RFC 2365:Administratively Scoped IP Multicast 和 RFC 2373:IP Version 6 Addressing Architecture 定义。InetAddress 的实例包含 IP 地址,还可能包含相应的主机名(取决于它是否用主机名构造或者是否已执行反向主机名解析)。
IP 地址范围
链接本地 地址设计用于在单个链接上寻址以解决诸如自动地址配置、邻居发现 (neighbor discovery) 或没有路由器时的问题。
站点本地 地址设计用于在不需要全球前缀时站点内部寻址。
全球 地址在 Internet 中是唯一的。
IP 地址的文本表示形式
IP 地址的文本表示形式是特定于地址系列的。
有关 IPv4 地址格式,请参阅 Inet4Address#format,有关 IPv6 地址格式,请参阅 Inet6Address#format。
主机名解析
主机名到 IP 地址的解析 通过使用本地机器配置信息和网络命名服务(如域名系统(Domain Name System,DNS)和网络信息服务(Network Information Service,NIS))来实现。要使用的特定命名服务默认情况下是本地机器配置的那个。对于任何主机名称,都返回其相应的 IP 地址。
反向名称解析 意味着对于任何 IP 地址,都返回与 IP 地址关联的主机。
InetAddress 类提供将主机名解析为其 IP 地址(或反之)的方法。
InetAddress 缓存
InetAddress 类具有一个存储成功及不成功主机名解析的缓存。正缓存用于防止 DNS 哄骗攻击;而负缓存用于提高性能。
默认情况下,正主机名解析的结果会永远缓存,因为不存在何时可以安全移除缓存条目的一般规则。不成功主机名解析的结果缓存非常短的时间(10 秒)以提高性能。
在某些特定情形下,即可以确定不可能发生 DNS 哄骗攻击时,可以将 Java 安全属性设置为另外的 Time-to-live (TTL) 值来进行正缓存。类似地,系统管理员在需要时可以配置另外的负缓存 TTL 值。
两个 Java 安全属性控制着用于正负主机名解析缓存的 TTL 值:
从以下版本开始:
JDK1.0
另请参见:
getByAddress(byte[])
、getByAddress(java.lang.String, byte[])
、getAllByName(java.lang.String)
、getByName(java.lang.String)
、getLocalHost()
、序列化表格
obj
与当前实例进行比较,当且仅当obj != null
,且两者所代表的ip地址
相同时,返回 true;ip地址
相同条件:2个实例通过调用getAddress()(见下1项)
获取的byte[]
的长度和成分(内容)相同。为何源码无任何业务,直接返回 false,暂未可知。
返回此 InetAddress 对象的原始 IP 地址。
说明:
先看源码。
注译:返回实例所代表的原始 ip 地址。
为何源码无任何业务,直接返回 null,暂未可知。
在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
在给定原始 IP 地址的情况下,返回 InetAddress 对象。
根据提供的主机名和 IP 地址创建 InetAddress。
在给定主机名的情况下确定主机的 IP 地址。
获取此 IP 地址的完全限定域名。
返回 IP 地址字符串(以文本表现形式)。
获取此 IP 地址的主机名。
返回本地主机。
返回此 IP 地址的哈希码。
检查 InetAddress 是否是通配符地址的实用例行程序。
检查 InetAddress 是否是链接本地地址的实用例行程序。
检查 InetAddress 是否是回送地址的实用例行程序。
检查多播地址是否具有全球范围的实用例行程序。
检查多播地址是否具有链接范围的实用例行程序。
检查多播地址是否具有节点范围的实用例行程序。
检查多播地址是否具有组织范围的实用例行程序。
检查多播地址是否具有站点范围的实用例行程序。
检查 InetAddress 是否是 IP 多播地址的实用例行程序。
测试是否可以达到该地址。
测试是否可以达到该地址。
检查 InetAddress 是否是站点本地地址的实用例行程序。
将此 IP 地址转换为 String。
本文持续更新中。。。