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

Мас­кой под­се­ти на­зы­ва­ет­ся 32-⁠раз­ряд­ное дво­ич­ное число, ко­то­рое опре­де­ля­ет, какая часть IP-⁠ад­ре­са ком­пью­те­ра от­но­сит­ся к ад­ре­су сети, а какая часть IP-⁠ад­ре­са опре­де­ля­ет адрес ком­пью­те­ра в под­се­ти. В маске под­се­ти стар­шие биты, от­ве­ден­ные в IP-⁠ад­ре­се ком­пью­те­ра для ад­ре­са сети, имеют зна­че­ние 1; млад­шие биты, от­ве­ден­ные в IP-⁠ад­ре­се ком­пью­те­ра для ад­ре­са ком­пью­те­ра в под­се­ти, имеют зна­че­ние 0.

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

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

Ре­ше­ние.

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

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

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

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

133_10=10000101_2,

208_10=11010000_2.

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

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

11111000  00000000,

10000101  11010000.

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

 

Ответ: 1488.

 

При­ведём ре­ше­ние Вла­ди­ми­ра Фай­зул­ли­на (Пермь) на языке Python.

a = list(map(int, input('Вве­ди­те адрес маски в фор­ма­те 255.255.248.0:').split('.')))

b = list(map(int, input('Вве­ди­те IP:').split('.')))

x=bin(a[0])[2:]+bin(a[1])[2:]+bin(a[2])[2:]+bin(a[3])[2:]

y=bin(b[0])[2:]+bin(b[1])[2:]+bin(b[2])[2:]+bin(b[3])[2:]

i=x.count('1')

y=y[(i-1):]

print(int(y,2))

 

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

from ipaddress import ip_network, ip_address

ip = '112.154.133.208'

mask = '255.255.248.0'

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

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


Аналоги к заданию № 2231: 2232 2234 2235 Все