Java InetAddress类用法详解(附带实例)
Java 提供了 InetAddress 类来代表 IP 地址,该类有两个子类,即 Inet4Address 类和 Inet6Address 类,它们分别代表 IPv4 和 IPv6 的地址。
InetAddress 类提供了 5 个静态方法来获取实例,如下表所示:
另外,InetAddress 类还有一些常用方法,如下表所示:
接下来,通过案例来演示上述方法的使用:
InetAddress 类提供了 5 个静态方法来获取实例,如下表所示:
方法 | 方法描述 |
---|---|
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 地址 |
static InetAddress getLocalHost() | 返回本机的 IP 地址 |
另外,InetAddress 类还有一些常用方法,如下表所示:
方法 | 方法描述 |
---|---|
String getCanonicalHostName() | 通过 IP 地址返回全限定域名 |
String getHostAddress() | 返回 InetAddress 实例对应的 IP 地址字符串 |
String getHostName() | 返回此 IP 地址的主机名 |
boolean isReachable(int timeout) | 判定指定时间内是否可以访问目标地址 |
接下来,通过案例来演示上述方法的使用:
import java.net.InetAddress; public class Demo { public static void main(String[] args) throws Exception { // 先获取到本机的地址并打印 InetAddress localHost = InetAddress.getLocalHost(); System.out.println("本机地址为:" + localHost); // 如果只需要获取到本机的IP号,则需要用toHostName()方法 System.out.println("获取本机IP为:" + localHost.getHostAddress()); // 获取主机名为"c.biancheng.net"的InetAddress地址,并打印 InetAddress address = InetAddress.getByName("c.biancheng.net"); System.out.println(address); // 打印"C语言中文网"的IP地址 System.out.println("C语言中文网的IP为:" + address.getHostAddress()); // 打印"C语言中文网"的主机名 System.out.println("C语言中文网的主机名为:" + address.getHostName()); // 判断能否在3秒内进行访问 System.out.println("3秒内可以访问:" + address.isReachable(3000)); } }程序的运行结果如下:
本机地址为:PC-202006302049/192.168.145.199
获取本机IP为:192.168.145.199
c.biancheng.net/122.116.169.212
C语言中文网的IP为:122.116.169.212
C语言中文网的主机名为:c.biancheng.net
3秒内可以访问:true