此类表示互联网协议 (IP) 地址。
直接子类有:Inet4Address, Inet6Address
IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。
InetAddress 的实例包含 IP 地址,还可能包含相应的主机名(取决于它是否用主机名构造或者是否已执行反向主机名解析)。
方法摘要
类型 | 方法 | 描述 |
---|---|---|
String | getHostName() | 获取此 IP 地址的主机名。 |
byte[] | getAddress() | 返回此 InetAddress 对象的原始 IP 地址。 |
static InetAddress[] | getAllByName(String host) | 在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。 |
static InetAddress | getByAddress(byte[] addr) | 在给定原始 IP 地址的情况下,返回 InetAddress 对象。 |
static InetAddress | getByAddress(String host, byte[] addr) | 根据提供的主机名和 IP 地址创建 InetAddress。 |
static InetAddress | getByName(String host) | 在给定主机名的情况下确定主机的 IP 地址。 |
String | getCanonicalHostName() | 获取此 IP 地址的完全限定域名。 |
String | getHostAddress() | 返回 IP 地址字符串(以文本表现形式)。 |
static InetAddress | getLocalHost() | 返回本地主机。 |
int | hashCode() | 返回此 IP 地址的哈希码。 |
boolean | isAnyLocalAddress() | 检查 InetAddress 是否是通配符地址的实用例行程序。 |
boolean | isLinkLocalAddress() | 检查 InetAddress 是否是链接本地地址的实用例行程序。 |
boolean | isLoopbackAddress() | 检查 InetAddress 是否是回送地址的实用例行程序。 |
boolean | isMCGlobal() | 检查多播地址是否具有全局域的实用例行程序。 |
boolean | isMCLinkLocal() | 检查多播地址是否具有链接范围的实用例行程序。 |
boolean | isMCNodeLocal() | 检查多播地址是否具有节点范围的实用例行程序。 |
boolean | isMCOrgLocal() | 检查多播地址是否具有组织范围的实用例行程序。 |
boolean | isMCSiteLocal() | 检查多播地址是否具有站点范围的实用例行程序。 |
boolean | isMulticastAddress() | 检查 InetAddress 是否是 IP 多播地址的实用例行程序。 |
boolean | isReachable(int timeout) | 测试是否可以达到该地址。 |
boolean | isReachable(NetworkInterface netif, int ttl, int timeout) | 测试是否可以达到该地址。 |
boolean | isSiteLocalAddress() | 检查 InetAddress 是否是站点本地地址的实用例行程序。 |
使用说明
byte[] 存储IP地址
使用byte[] adds对IP进行存储的时候,如果值大于127,需要进行类型转换,如:byte[] adds={(byte)192,(byte)168.0.2}
两种获取主机名的区别
getCanonicalHostName得到的是主机名,而getHostName得到的主机别名.
isLinkLocalAddress()方法
当IP地址是通配符地址时返回true,否则返回false.这个通配符地址对于拥有多个网络接口(如两块网卡)的计算机非常拥有。使用通配符地址可以允许在服务器主机接受来自任何网络接口的客户端连接。IPv4的通配符地址是0.0.0.0.IPv6的通配符地址是0:0:0:0:0:0:0:0,也可以简写成::。