此类表示Internet协议(IP)地址。
IP地址是IP使用的32位或128位无符号数字,是构建UDP和TCP等协议的低级协议。IP地址体系结构由RFC 790定义:分配号码,RFC 1918:专用因特网的地址分配,RFC 2365:管理范围的IP组播,以及RFC 2373:IP版本6寻址体系结构。InetAddress的实例由IP地址和可能的相应主机名组成(取决于它是使用主机名构造还是已经完成反向主机名解析)。
方法 | 描述 |
---|---|
InetAddress getByName(String host) | 通过域名或者IP构建一个InetAddress对象 |
InetAddress[] getAllByName(String host) | 通过域名构建一个InetAddress[] |
InetAddress getLocalHost() | 获取本机相关的InetAddress对象 |
String getHostName() | 获取主机名 |
String getCanonicalHostName() | 获取主机名 |
byte[] getAddress() | 获取主机地址 |
String getHostAddress() | 获取主机地址 |
static InetAddress getLoopbackAddress() | 返回环回地址 |
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是否为站点本地地址的实用程序例程。 |
- 判断是IPV4还是IPV6
public int getVersion(InetAddress address){
byte[] addresses = address.getAddress();
if (addresses.length == 4) {
return 4;
}
else if (addresses.length == 6){
return 6;
}
else {
return -1;
}
}