ipv6是ipv4的升级版 它拥有更多的IP地址

 

一:
 IPv4地址也时常以一组4个2位的十六进制整数或4个8位的二进制整数表示,但后一种情况较少见。
4×8 = 32    201.199.244.101
4个字段 每个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.107
fe80::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地址!");
}}