Сеть задана IP-адресом одного из входящих в неё узлов 189.163.226.71 и сетевой маской 255.255.255.240.
Найдите IP-адрес сети.
В ответе укажите сумму числовых значений октетов найденного IP-адреса.
Например, если бы найденный адрес был равен 100.20.3.4, то в ответе следовало бы записать: 127.

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети.
Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы.
Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.
Сеть задана IP-адресом одного из входящих в неё узлов 189.163.226.71 и сетевой маской 255.255.255.240.
Найдите IP-адрес сети.
В ответе укажите сумму числовых значений октетов найденного IP-адреса.
Например, если бы найденный адрес был равен 100.20.3.4, то в ответе следовало бы записать: 127.
import ipaddress
ip = ipaddress.IPv4Address("189.163.226.71")
mask = ipaddress.IPv4Network("189.163.226.71/255.255.255.240", strict=False)
network = mask.network_address
broadcast = mask.broadcast_address
max_ip = int(broadcast) - 1
max_ip = ipaddress.IPv4Address(max_ip)
# сумма октетов
result = sum(int(o) for o in str(max_ip).split("."))
print(result)
📌 Результат: наибольший адрес компьютера — 189.163.226.78; сумма октетов: 642 (189 + 163 + 226 + 78).
ip = 189, 163, 226, 71
mask = 255, 255, 255, 240
ip = tuple((a & b) | (255 - b) for a, b in zip(ip, mask))
ip = list(ip)
ip[3] -= 1
print(ip)
print(sum(ip))
📌 Результат: после применения маски к узлу получаем максимальный хостовый адрес; сумма октетов совпадает с ответом 642.
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода