这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战
IP基础知识:
IP是Internet Protocol的简称,即网络互联协议。IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节,但是二进制是计算机的数据处理模式,不符合人们的日常使用习惯,因此IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节. 例如:192.168.1.1
IP地址有IPv4和IPv6两种,不过目前广泛使用的还是IPv4地址。
IPv4地址地址根据用途和安全性可以分为两类:
1、公网地址:公网ip地址是可以在公网(外网)中使用的,使用公用地址的计算机可以通过Internet彼此访问。
2、私网地址:私网地址只能够用在内网中,使用私有地址的计算机不能通过internet访问。
我们可以把公用ip地址比喻成11位的普通手机号码;而私有ip地址可以比喻成校园网的短号,例如520、521等。普通的11位手机号码彼此之间可以通话,但是校园网的520号码不能够和校园网以外的号码通话,只能够呼叫该校园网中的521等短号,要和其它号码通信只能够使用520对应的那个11位的手机号码.
准确描述一个子网的规模的两个条件:
- 子网地址
- 子网掩码
问题:
假设一个子网中一个主机的地址是203.123.1.135, 子网掩码是255.255.255.192,那么该子网的网络地址是多少?该子网IP地址总数是多少?该子网可分配ip地址数是多少?可分配的IP地址范围是?
求网络地址方法:主机地址与子网掩码做按位与运算
host = '203.123.1.135'.split('.')
mask = '255.255.255.192'.split('.')
# 网络地址
sub_network = []
for index, num in enumerate(host):
sub_network.append(str(int(host[index]) & int(mask[index])))
sub_network = '.'.join(sub_network)
# 203.123.1.128
该子网IP地址总数: 因为子网掩码的前面26位为1,所以只剩下32-26=6位作为主机ip地址,即2的6次方,即64。
该子网可分配ip地址数是:因为子网网络地址和广播地址占用了2个ip,所以可分配地址为64-2=62
可分配的IP地址范围是:203.123.1.129 ~ 203.123.1.190
另外一种子网ip地址表示方法:203.1.1.0/24 表示32位的ip地址的前面24位为网络地址,剩下的8位为主机地址。
分类地址:
设计了3种长度的前缀,分别为8位,16位,32位,对应的是A类、B类和C类地址。
A类地址有2的7次方个A类网络,每个A类网络可以有2的24次方个ip地址总数;
B类地址有2的14次方个A类网络,每个B类网络可以有2的16次方个ip地址总数;
C类地址有2的21次方个A类网络,每个C类网络可以有2的8次方个ip地址总数.
D类地址为组播地址,E类地址为保留地址。