Задания
Версия для печати и копирования в MS Word
Тип 13 № 27238
i

В тер­ми­но­ло­гии сетей TCP/⁠IP маска сети  — это дво­ич­ное число, мень­шее 232; в маске сна­ча­ла (в стар­ших раз­ря­дах) стоят еди­ни­цы, а затем с не­ко­то­ро­го места нули. Маска опре­де­ля­ет, какая часть IP-⁠ад­ре­са узла сети от­но­сит­ся к ад­ре­су сети, а какая  — к ад­ре­су са­мо­го узла в этой сети. Обыч­но маска за­пи­сы­ва­ет­ся по тем же пра­ви­лам, что и IP-⁠адрес,  — в виде четырёх байт, причём каж­дый байт за­пи­сы­ва­ет­ся в виде де­ся­тич­но­го числа. Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те при­ме­не­ния по­раз­ряд­ной конъ­юнк­ции к за­дан­но­му IP-⁠ад­ре­су узла и маске.

На­при­мер, если IP-⁠адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.

Узлы с IP-⁠ад­ре­са­ми 84.77.47.132 и 84.77.48.132 на­хо­дят­ся в одной сети. Ука­жи­те наи­боль­шее воз­мож­ное зна­че­ние тре­тье­го слева байта маски этой сети. Ответ за­пи­ши­те в виде де­ся­тич­но­го числа.

Спрятать решение

Ре­ше­ние.

Рас­смот­рим тре­тий байт IP-⁠ад­ре­са и ад­ре­са сети в дво­ич­ной си­сте­ме счис­ле­ния:

4710  =  0010 11112,

4810  =  0011 00002.

От­ку­да ясно, что три пер­вых слева бита маски  — еди­ни­цы, осталь­ные  — нули. То есть тре­тий байт маски равен 1110 00002  =  22410.

 

Ответ: 224.

 

При­ме­ча­ние. В маске после нуля идут толь­ко одни нули.

 

При­ведём ре­ше­ние Ильи Ан­дри­а­но­ва на языке Python.

from ipaddress import *

R = []

for mask in range(32+1):

net1 = ip_network(f'84.77.47.132/{mask}', 0)

net2 = ip_network(f'84.77.48.132/{mask}', 0)

if net1 == net2:

R.append(str(net1.netmask).split('.')[2])

print(max(R))


Аналоги к заданию № 27011: 27238 61359 Все