ipv6是ipv4的升级版 它拥有更多的IP地址
一: IPv4地址也时常以一组4个2位的十六进制整数或4个8位的二进制整数表示,但后一种情况较少见。 4×8 = 32 201.199.244.1014个字段 每个4byte
二: 表达式一: IPV6优先选用的形式是 X:X:X:X:X:X:X:X ,其中X是1个16位地址段的十六进制值。例如: 8个字段 每个4个4byte 8×4×4 = 128 FEDC:BA98:7654:4210:FEDC:BA98:7654:3210
表达式二: 会发生包含长串0位的地址。为了简化包含0位地址的书写,可以使用“::”符号简化多个0位的16位组。“::
”符号在一个地址中只能出现一次。该符号也可以用来压缩地址中前部和尾部的0。举例如下:
FF01:0:0:0:0:0:0:101 多点传送地址 0:0:0:0:0:0:0:1 回送地址 可用下面的压缩形式表示:
FF01::101 多点传送地址 ::1 回送地址
ip 实际地址:192.168.1.107fe80::5efe:192.168.1.108%2
import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net.UnknownHostException;
public class MyTest {
/** * @param args * @CreateDate:2012-3-12 * @author * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException { // TODO Auto-generated method stub MyTest t = new MyTest();// ipv4地址// t.ipv6("www.163.com"); // ipv6地址// t.ipv6("www.neu6.edu.cn"); t.ipv6("fe80::5efe:192.168.1.108%2"); } public void ipv6(String ip) throws UnknownHostException{ if (ip.length() == 0) { return; } InetAddress address = InetAddress.getByName(ip); 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地址!"); }
}