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

В тер­ми­но­ло­гии сетей TCP/IP мас­кой сети на­зы­ва­ют дво­ич­ное число, ко­то­рое по­ка­зы­ва­ет, какая часть IP-⁠ад­ре­са узла сети от­но­сит­ся к ад­ре­су сети, а какая  — к ад­ре­су узла в этой сети. Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те при­ме­не­ния по­раз­ряд­ной конъ­юнк­ции к за­дан­но­му ад­ре­су узла и его маске.

Ши­ро­ко­ве­ща­тель­ным ад­ре­сом на­зы­ва­ет­ся спе­ци­а­ли­зи­ро­ван­ный адрес, в ко­то­ром на месте нулей в маске стоят еди­ни­цы. Адрес сети и ши­ро­ко­ве­ща­тель­ный адрес не могут быть ис­поль­зо­ва­ны для ад­ре­са­ции се­те­вых устройств.

Сеть за­да­на IP-⁠ад­ре­сом од­но­го из вхо­дя­щих в неё узлов 212.184.197.210 и се­те­вой мас­кой 255.255.224.0.

Най­ди­те наи­мень­ший в дан­ной сети IP-⁠адрес, со­дер­жа­щий в своей дво­ич­ной за­пи­си крат­ное 5 ко­ли­че­ство еди­ниц, ко­то­рый может быть на­зна­чен ком­пью­те­ру. В от­ве­те ука­жи­те най­ден­ный IP-⁠адрес без раз­де­ли­те­лей.

На­при­мер, если бы най­ден­ный адрес был равен 111.22.3.44, то в от­ве­те сле­до­ва­ло бы за­пи­сать 11122344.

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

Ре­ше­ние.

##При­ведём ре­ше­ние на языке Python.

from ipaddress import ip_network

net = ip_network('212.184.197.210/255.255.224.0', 0)

otv = []

for ip in net:

ipad = bin(int(ip))[2:]

if ipad.count('1') % 5 == 0:

otv.append(str(ip).replace('.',''))

print(otv[1])

 

Ответ: 21218419231.