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

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

IP-адрес: 145.92.137.88

Маска: 255.255.240.0

При за­пи­си от­ве­та вы­бе­ри­те из при­ве­ден­ных в таб­ли­це чисел че­ты­ре эле­мен­та IP-⁠ад­ре­са и за­пи­ши­те в нуж­ном по­ряд­ке со­от­вет­ству­ю­щие им буквы без точек.

 

ABCDEFGH
01452551371282408892

 

При­мер.

Пусть ис­ко­мый адрес сети 192.168.128.0 и дана таб­ли­ца:

 

ABCDEFGH
1281682558127017192

 

В этом слу­чае пра­виль­ный ответ будет HBAF.

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

Ре­ше­ние.

1.  За­пи­шем числа маски сети в дво­ич­ной си­сте­ме счис­ле­ния. По­лу­чим:

255_10=11111111_2,

240_10=11110000_2,

0_10=00000000_2.

2.  Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те по­раз­ряд­ной конъ­юнк­ции чисел маски и чисел ад­ре­са узла (в дво­ич­ном коде). По­сколь­ку конъ­юнк­ция 0 с чем-⁠либо все­гда равна 0, то на тех ме­стах, где числа маски равны 0, в ад­ре­се узла стоит 0. Ана­ло­гич­но там, где числа маски равны 255, стоит само число, так как конъ­юнк­ция 1 с любым чис­лом все­гда равна этому числу.

3.  Рас­смот­рим конъ­юнк­цию числа 240 с чис­лом 137:

240_10=11110000_2,

137_10=10001001_2.

Ре­зуль­та­том конъ­юнк­ции яв­ля­ет­ся число 10 000 000_2=128.

 

4.  Со­по­ста­вим ва­ри­ан­ты от­ве­та по­лу­чив­шим­ся чис­лам: 145, 92, 128, 0.

 

Ответ: BHEA.

 

При­ведём ре­ше­ние Де­ни­са Ка­шу­ти­на (город Вла­ди­мир) на языке Python.

dict1 = {0: 'А', 145: 'B', 255: 'C', 137 : 'D', 128 : 'E', 240 : 'F', 88 : 'G', 92 : 'H'}

mylist = [145 & 255, 92 & 255, 137 & 240, 88 & 0]

for i in mylist:

if i in dict1: # если эле­мент из спис­ка встре­ча­ет­ся в сло­ва­ре, то вы­во­дим эле­мент сло­ва­ря

print(dict1[i])

 

При­ведём ре­ше­ние Ти­мо­фея Со­фро­но­ва на языке Python.

from ipaddress import *

cnt = 0

net = ip_network('145.92.137.88/255.255.240.0', 0)

print(str(net)[:-3])