1. **IPv4格式**
- IPv4地址是32位二进制数,通常用点分十进制表示。将32位二进制数按照每8位一组进行划分,共分为4组,每组转换为十进制数,然后用点(.)分隔。例如,二进制表示为`11000000.10101000.00000001.00000001`,转换为十进制就是`192.168.1.1`。
- IPv4地址的格式可以分为以下几类:
- **A类地址**:第一位固定为0,网络号占8位,主机号占24位。范围是从`0.0.0.0`到`127.255.255.255`。其中`0.0.0.0`表示所有网络,`127.0.0.1`是本地回环地址,用于本地主机的通信测试。
- **B类地址**:前两位固定为10,网络号占16位,主机号占16位。范围是从`128.0.0.0`到`191.255.255.255`。
- **C类地址**:前三位固定为110,网络号占24位,主机号占8位。范围是从`192.0.0.0`到`223.255.255.255`。这是最常用的一类地址,用于小型网络。
- **D类地址**:前四位固定为1110,用于多播(组播),范围是从`224.0.0.0`到`239.255.255.255`。
- **E类地址**:前五位固定为11110,保留用于实验和研究等特殊用途,范围是从`240.0.0.0`到`255.255.255.255`。
2. **IPv6格式**
- IPv6地址是128位二进制数,采用冒号十六进制表示法。将128位二进制数按照每16位一组进行划分,共分为8组,每组转换为十六进制数,然后用冒号(:)分隔。例如,`2001:0db8:85a3:0000:0000:8a2e:0370:7334`。
- IPv6地址中有一些特殊的规则来简化表示:
- 每组中的前导0可以省略。例如,`2001:0db8:85a3:0:0:8a2e:370:7334`(将`0000`写成`0`,`0370`写成`370`)。
- 如果连续几组都是0,可以用双冒号(::)来代替。但一个IPv6地址中双冒号只能出现一次,用于压缩最长的连续0组。例如,`2001:0db8:85a3::8a2e:0370:7334`(这里将中间的`0000:0000`用`::`代替)。
3. **两者对比**
- **长度和位数**:IPv4是32位,IPv6是128位。IPv6的地址空间比IPv4大得多,IPv4地址约有43亿个,而IPv6地址数量约为340万亿个。
- **表示方法**:IPv4使用点分十进制,IPv6使用冒号十六进制。IPv6的表示方法在书写和识别上相对复杂,但它的地址空间更广阔,能够满足未来网络对地址数量的巨大需求。
- **特殊地址格式差异**:IPv4有不同的类别地址用于区分网络规模和用途(A - E类),而IPv6虽然也有特殊用途的地址,但在格式分类上不像IPv4那样明确划分用于不同网络规模的类别。例如,IPv6有链路本地地址(以`FE80::/10`开头)用于同一链路(如局域网)上的通信等。