计算能包含1.1.1.75,1.1.1.100这两个ip地址的最小网段,以起始地址表示
网段的掩码是 255.255.255.0,网段的起始地址是1.1.1.0
255.255.255.192
1.1.1.64/26
这是求网络地址的问题,就是让一个网络地址的划分的主机位里包含1.1.1.75,1.1.1.100这两个ip的第四段75和100,掩码尽量大,主机位尽量小。看看这两个ip前三段相同,第四段不同,显然要求的网络地址在ip第四段既有网络地址,又有主机地址。第四段ip的值差100-75=25,就是说这个主机位得最小有5位,主机块大小为2^5=32,00000-11111才能满足。但75和100不一定在一个段了,而可能跨域两个段,就需要我们试一下。
我们试一下,100/32得3余4,75/32得2余11,这显然不行,因为同一网络地址里,主机位n,该段ip除2^n取整是相同的,所以主机位为5不行,所以试一下主机位为6,2^6=64,75/64得1,余11,100/64得1余36,符合要求。所以主机位为6,掩码就是32-6=26,掩码第四段就是256-2^6=192,网络地址第四段就1x64=64
网络地址就是1.1.1.64/26 255.255.255.192
就是把0-255,256个编号数字,分成等大的几份(2,4,8,16,32,64,128),让对应的ip落在几份范围里。如分成4分,0-63,64-127,128-191,192-255
可参考https://blog.csdn.net/wj31932/article/details/127939596?spm=1001.2014.3001.5502
其实很简单,就是把标着0到255数字的256段软绳,中间一折,一分为二,0-127,128-255,再中间一折,二分为四,0-63,64-127,128-191,192-255,每段开头是网络地址,结束是广播地址,共四个子网,75和100显然在64-127这个范围里。再中间一折划成8段,每段32个,发现75和100分属两个不同的短。所以只用分成4段合适。因为网络位的位数决断了子网个数,4个子网,所以网络位为2,主机位6,该题变化在ip地址第四段,所以掩码就是24+2=26,11000000就是128+64=192,所以掩码就是26,255.255.255.192
网段地址 1.1.1.64
起始地址 1.1.1.65
结束地址 1.1.1.127
网络掩码 255.255.255.128
A、 10.10.10.0
B、 10.10.4.0
C、 10.10.64.0
D、 10.10.32.0
答案: C
我可以回答这个问题。
根据题目要求,我们需要将IP地址1.1.1.75和1.1.1.100放在同一个网段内,并求出网络地址。根据参考资料中段落4的内容可以知道,IP地址和子网掩码是一一对应关系,可以通过子网掩码数计算得出子网掩码为255.255.255.0。
根据这个子网掩码可以得出这是一个C类地址,而一个C类地址的网络地址由前三段构成,即1.1.1.0。因此1.1.1.75和1.1.1.100所在的最小网络地址是1.1.1.0。
代码如下:
subnet_mask = '255.255.255.0' # 子网掩码
ip1 = '1.1.1.75'
ip2 = '1.1.1.100'
# 将IP地址转化为二进制
ip1_binary = ''.join([bin(int(x)+256)[3:] for x in ip1.split('.')])
ip2_binary = ''.join([bin(int(x)+256)[3:] for x in ip2.split('.')])
# 将子网掩码转化为二进制
subnet_mask_binary = ''.join([bin(int(x)+256)[3:] for x in subnet_mask.split('.')])
# 计算网络地址
network_address_binary = ''
for i in range(len(ip1_binary)):
if ip1_binary[i] == ip2_binary[i]:
network_address_binary += ip1_binary[i]
else:
break
network_address = ''
for i in range(0, len(network_address_binary), 8):
network_address += str(int(network_address_binary[i:i+8], 2)) + '.'
network_address = network_address[:-1]
print("最小网络地址为:" + network_address)
输出结果为:
最小网络地址为:1.1.1.0
要计算能包含1.1.1.75和1.1.1.100这两个IP地址的最小网段,需要找到这两个IP地址的最长公共前缀(即网络地址部分相同的位数),然后确定子网掩码。
首先,将两个IP地址转换为二进制形式:
1.1.1.75 = 00000001 00000001 00000001 01001011
1.1.1.100 = 00000001 00000001 00000001 01100100
接下来,比较两个二进制形式的IP地址,找到最长公共前缀:
最长公共前缀为:00000001 00000001 00000001 01
根据最长公共前缀确定子网掩码,将网络地址部分设为全1,主机地址部分设为全0:
子网掩码:11111111 11111111 11111111 11000000
也就是:255.255.255.192
最后,根据起始IP地址和子网掩码计算出起始地址:
起始IP地址:00000001 00000001 00000001 01
也就是:1.1.1.64/26
其中的26表示子网掩码有26位。
因此,能包含1.1.1.75和1.1.1.100这两个IP地址的最小网段的起始地址是:1.1.1.64/26。
掩码是255.255.255.0
起始1.1.1.0