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

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

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

Для узла с IP-⁠ад­ре­сом 111.81.208.27 адрес сети равен 111.81.192.0. Чему равно наи­боль­шее воз­мож­ное зна­че­ние тре­тье­го слева байта маски? Ответ за­пи­ши­те в виде де­ся­тич­но­го числа.

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

Ре­ше­ние.

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

20810  =  110100002,

19210  =  110000002.

Видим, что два пер­вых слева бита маски  — еди­ни­цы, а тре­тий бит может быть как нулем, так и еди­ни­цей. Для того чтобы зна­че­ние было наи­боль­шим, этот бит дол­жен быть равен еди­ни­це. По­лу­ча­ем, что тре­тий слева байт маски равен 111000002  =  22410.

 

Ответ: 224.

 

При­ведём ре­ше­ние Ла­ри­сы Нефёдовой на языке Python.

from ipaddress import *

ip = ip_address('111.81.208.27')

net = ip_address('111.81.192.0')

for mask in range(33):

network = ip_network(f'{ip}/{mask}', 0)

if net == network.network_address:

mask = network.netmask

byte3 = str(mask).split('.')[2]

print(byte3)

 

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

mask = [int('1'*i+'0'*(8-i),2) for i in range(9)]

print(max([m for m in mask if 208&m==192]))


Аналоги к заданию № 9762: 9798 10413 11268 ... Все