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

Если маска под­се­ти 255.255.240.0 и IP-⁠адрес ком­пью­те­ра в сети 232.126.150.18, то номер ком­пью­те­ра в сети равен _____.

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

Ре­ше­ние.

1.  По­сколь­ку пер­вые два ок­те­та (октет  — число маски, со­дер­жит 8 бит) оба равны 255, то в дво­ич­ном виде они за­пи­сы­ва­ют­ся как 16 еди­ниц, а зна­чит, пер­вые два ок­те­та опре­де­ля­ют адрес сети.

2.  За­пи­шем число 240 в дво­ич­ном виде: 240_10=11110000_2.

Итого, по­след­ние два ок­те­та маски за­пи­сы­ва­ют­ся как 11110000  00000000.

3.  За­пи­шем по­след­ние два ок­те­та IP-⁠ад­ре­са ком­пью­те­ра в сети:

150_10=10010110_2,

18_10=10010_2.

Итого, по­след­ние два ок­те­та IP-⁠ад­ре­са ком­пью­те­ра в сети за­пи­сы­ва­ют­ся так: 10010110  00010010.

4.  Со­по­ста­вим по­след­ние ок­те­ты маски и ад­ре­са ком­пью­те­ра в сети:

11110000 00000000,

10010110 00010010.

Жир­ным вы­де­ле­на нуж­ная нам часть. Пе­ре­ве­дем её в де­ся­тич­ную си­сте­му счис­ле­ния: 11000010010_2=1554_10.

 

Ответ: 1554.

 

При­ведём ре­ше­ние Ми­ха­и­ла Ба­ра­ка на языке Python.

from ipaddress import *

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

count = 0

for ad in net:

if ad == ip_address('232.126.150.18'):

print(count)

break

count += 1

 

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

from ipaddress import ip_network, ip_address

ip = '232.126.150.18'

mask = '255.255.240.0'

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

print(int(ip_address(ip))-int(net.network_address))


Аналоги к заданию № 3784: 3786 Все