ip相关的几个基本知识点:
1. 1个字节包含8个二进制位
2. 12个十进制数字,每3个一组(一个字节),用`.`分割,ip是32位
3. 由网络位和主机位构成,由子网掩码来确定
4. 子网掩码也是32位,网络位用1表示,主机位用0表示
5. cidr定义了前缀长度,就是网络位的长度
示例:
1 | ip:149.154.160.0 |
具体计算过程:
将IP地址149.154.160.0转换为二进制表示:
1
2
3
4
5ip:
149 . 154 . 160 . 0
二进制:
10010101 . 10011010 . 10100000 . 00000000根据CIDR表示法中的前缀长度(20位),确定子网掩码
1
2
3
4
5二进制,前20位设置为1,后面的12位设置为0:
11111111 . 11111111 . 11110000 . 00000000
子网掩码
255.255.240.0。我们将IP地址和子网掩码进行逻辑与操作(AND运算):
1
2
3
4
5
6
710010101 . 10011010 . 10100000 . 00000000
AND
11111111 . 11111111 . 11110000 . 00000000
------------------------------------------
10010101 . 10011010 . 10100000 . 00000000
转化为十进制:
149.154.160.0得到的结果149.154.160.0就是网络的起始地址。
确定网络的结束地址。
根据CIDR表示法中的前缀长度(20位),剩余的12位都是主机标识符。
前20位保持不变,后面的12位设置为1,得到网络的结束地址:
10010101 . 10011010 . 10101111 . 11111111
转换为十进制表示为149.154.175.255,这就是网络的结束地址。
因此,CIDR表示法149.154.160.0/20匹配的IP地址范围是从149.154.160.0到149.154.175.255。