一、InetAddress的两个子类 Inet4Address类和Inet6Address类
不同之处是:Inet6Address类比Inet4Address类多了一个方法isIPv4CompatibleAddress(),这个方法用来判断一个IPv6地址是否和IPv4地址兼容。
判断一个InetAddress类是IPv4或IPv6的方法:
(1). 根据getAddress()方法返回的byte数组的长度(长度为4则为IPv4,长度为16则为IPv6)来判断
(2). 用instanceof来判断
InetAddress address = InetAddress.getByName("ZZQ");
System.out.println("IP:" + address.getHostAddress());
switch (address.getAddress().length) {
case 4:
System.out.println("根据byte数组长度判断这个IP地址是IPv4地址!");
break;
case 16:
System.out.println("根据byte数组长度判断这个IP地址是IPv6地址!");
break;
}
if (address instanceof Inet4Address)
System.out.println("使用instanceof判断这个IP地址是IPv4地址!");
else if (address instanceof Inet6Address)
System.out.println("使用instanceof判断这个IP地址是IPv6地址!");