В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.
Сеть задана IP-адресом одного из входящих в неё узлов 191.128.66.83 и сетевой маской 255.192.0.0.
Найдите в данной сети наибольший IP-адрес, который может быть назначен компьютеру. В ответе укажите найденный IP-адрес без разделителей.
Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать: 11122344.
Приведём программу на языке Python.
from ipaddress import *
net = ip_network('191.128.66.83/255.192.0.0', 0)
print(str(net[-2]).replace('.',''))
Ответ: 191191255254.
Приведём аналитическое решение Александра Козлова.
Любым доступным способом переводим каждый октет в двоичный код и записываем их друг под другом, например, так:
Маска: - 11111111 11000000 00000000 00000000
Адрес: - 10111111 10000000 01000010 01010011
М & A: - 10111111 10111111
После выполнения между первыми двумя октетами поразрядной конъюнкции получим адрес сети. Под оставшимися двумя октетами, точнее - пятнадцатью справа нулями ставим единицы и на последнем месте ноль, т. к. младший бит резервируем под адрес сети и широковещательный адрес.
Переводим полученные октеты в десятичную систему счисления любым известным способом и получаем: 10111111 10111111 11111111 11111110 – 191 191 255 254

