Module java.base
Package java.net

Class Inet4Address

java.lang.Object
java.net.InetAddress
java.net.Inet4Address
所有已实现的接口:
Serializable

public final class Inet4Address extends InetAddress
该类表示一个IPv4地址。由 RFC 790: 分配的数字 RFC 1918: 专用互联网地址分配RFC 2365: 管理范围的IP组播定义。

IP地址的文本表示

作为方法输入的IPv4地址的文本表示采用以下形式之一:
  • d.d.d.d
  • d.d.d
  • d.d
  • d

当指定四个部分时,每个部分被解释为一个数据字节,并从左到右分配给IPv4地址的四个字节。

当指定三个部分地址时,最后一个部分被解释为一个16位数量,并放置在网络地址的最右两个字节中。这使得三部分地址格式方便指定类B网络地址为128.net.host。

当提供两部分地址时,最后一个部分被解释为一个24位数量,并放置在网络地址的最右三个字节中。这使得两部分地址格式方便指定类A网络地址为net.host。

当只给出一个部分时,该值直接存储在网络地址中,不进行任何字节重新排列。

对于返回文本表示作为输出值的方法,使用第一种形式,即点分四进制字符串。

多播地址的范围

历史上,IP头中的IPv4 TTL字段兼作多播范围字段:TTL为0表示节点本地,1表示链路本地,直至32表示站点本地,直至64表示区域本地,直至128表示大陆本地,直至255为全局。然而,首选管理范围。请参考 RFC 2365: 管理范围的IP组播
自版本:
1.4
外部规范
参见:
  • Method Details

    • isMulticastAddress

      public boolean isMulticastAddress()
      检查InetAddress是否为IP多播地址的实用程序例程。IP多播地址是类D地址,即地址的前四位为1110。
      覆盖:
      isMulticastAddress 在类 InetAddress
      返回:
      一个boolean指示InetAddress是否为IP多播地址
    • isAnyLocalAddress

      public boolean isAnyLocalAddress()
      检查InetAddress是否为通配符地址的实用程序例程。
      覆盖:
      isAnyLocalAddress 在类 InetAddress
      返回:
      一个boolean指示InetAddress是否为通配符地址。
    • isLoopbackAddress

      public boolean isLoopbackAddress()
      检查InetAddress是否为环回地址的实用程序例程。
      覆盖:
      isLoopbackAddress 在类 InetAddress
      返回:
      一个boolean指示InetAddress是否为环回地址;否则为false。
    • isLinkLocalAddress

      public boolean isLinkLocalAddress()
      检查InetAddress是否为链路本地地址的实用程序例程。
      覆盖:
      isLinkLocalAddress 在类 InetAddress
      返回:
      一个boolean指示InetAddress是否为链路本地地址;如果地址不是链路本地单播地址,则为false。
    • isSiteLocalAddress

      public boolean isSiteLocalAddress()
      检查InetAddress是否为站点本地地址的实用程序例程。
      覆盖:
      isSiteLocalAddress 在类 InetAddress
      返回:
      一个boolean指示InetAddress是否为站点本地地址;如果地址不是站点本地单播地址,则为false。
    • isMCGlobal

      public boolean isMCGlobal()
      检查多播地址是否具有全局范围的实用程序例程。
      覆盖:
      isMCGlobal 在类 InetAddress
      返回:
      一个boolean指示地址是否为全局范围的多播地址,如果不是全局范围或不是多播地址,则为false。
    • isMCNodeLocal

      public boolean isMCNodeLocal()
      检查多播地址是否具有节点范围的实用程序例程。
      覆盖:
      isMCNodeLocal 在类 InetAddress
      返回:
      一个boolean指示地址是否为节点本地范围的多播地址,如果不是节点本地范围或不是多播地址,则为false。
    • isMCLinkLocal

      public boolean isMCLinkLocal()
      检查多播地址是否具有链路范围的实用程序例程。
      覆盖:
      isMCLinkLocal 在类 InetAddress
      返回:
      一个boolean指示地址是否为链路本地范围的多播地址,如果不是链路本地范围或不是多播地址,则为false。
    • isMCSiteLocal

      public boolean isMCSiteLocal()
      检查多播地址是否具有站点范围的实用程序例程。
      覆盖:
      isMCSiteLocal 在类 InetAddress
      返回:
      一个boolean指示地址是否为站点本地范围的多播地址,如果不是站点本地范围或不是多播地址,则为false。
    • isMCOrgLocal

      public boolean isMCOrgLocal()
      检查多播地址是否具有组织范围的实用程序例程。
      覆盖:
      isMCOrgLocal 在类 InetAddress
      返回:
      一个boolean指示地址是否为组织本地范围的多播地址,如果不是组织本地范围或不是多播地址,则为false。
    • getAddress

      public byte[] getAddress()
      返回此InetAddress对象的原始IP地址。结果以网络字节顺序表示:地址的最高位字节在getAddress()[0]中。
      覆盖:
      getAddress 在类 InetAddress
      返回:
      此对象的原始IP地址。
    • getHostAddress

      public String getHostAddress()
      返回以文本形式呈现的IP地址字符串。
      覆盖:
      getHostAddress 在类 InetAddress
      返回:
      以字符串格式返回原始IP地址。
    • hashCode

      public int hashCode()
      返回此IP地址的哈希码。
      覆盖:
      hashCode 在类 InetAddress
      返回:
      此IP地址的哈希码值。
      参见:
    • equals

      public boolean equals(Object obj)
      与指定对象比较此对象。结果为true仅当参数不为null且表示与此对象相同的IP地址时。

      InetAddress的两个实例表示相同的IP地址,如果getAddress返回的字节数组的长度对于两者都相同,并且每个数组组件对于字节数组都是相同的。

      覆盖:
      equals 在类 InetAddress
      参数:
      obj - 要比较的对象。
      返回:
      如果对象相同则为true; 否则为false
      参见: