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

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

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

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

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

Ре­ше­ние.

Пе­ре­ве­дем тре­тьи байты в дво­ич­ную си­сте­му:

19610  =  110001002,

19210  =  110000002.

Из­вест­но, что пер­вые 2 бита тре­тье­го байта маски  — 1, а 6 бит обя­за­тель­но равен 0. Зна­чит, мак­си­маль­ный тре­тий байт маски имеет вид 111110002  =  24810.

 

При­ме­ча­ние. Ответ 251 яв­ля­ет­ся не­вер­ным, так как после нуля долж­ны идти толь­ко нули.

 

Ответ: 248.

 

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

from ipaddress import *

maxi = 0

for mask in range(32+1):

net = ip_network(f'136.128.196.48/{mask}', 0)

if str(net) == f'136.128.192.0/{mask}':

maxi = max(maxi, int(str(net.netmask).split('.')[2]))

print(maxi)


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

Источник: Тре­ни­ро­воч­ная ра­бо­та по ИН­ФОР­МА­ТИ­КЕ 11 класс 30 сен­тяб­ря 2016 года Ва­ри­ант ИН10103