Сеть задана IP-адресом одного из входящих в неё узлов 64.237.228.143 и сетевой маской 255.255.248.0.
Найдите адрес сети.
В ответе укажите сумму числовых значений октетов найденного IP-адреса.
Например, если бы найденный адрес был равен 100.20.3.4, то в ответе следовало бы записать: 127.
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети.
Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Сеть задана IP-адресом одного из входящих в неё узлов 64.237.228.143 и сетевой маской 255.255.248.0.
Найдите адрес сети.
В ответе укажите сумму числовых значений октетов найденного IP-адреса.
Например, если бы найденный адрес был равен 100.20.3.4, то в ответе следовало бы записать: 127.
import ipaddress
ip = ipaddress.IPv4Address("64.237.228.143")
mask = ipaddress.IPv4Network("64.237.228.143/255.255.248.0", 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)
📌 Результат: наибольший адрес компьютера — 64.237.231.254; сумма октетов: 525 (64 + 237 + 231 + 254).
ip = 64, 237, 228, 143
mask = 255, 255, 248, 0
ip = tuple((a & b) | (255 - b) for a, b in zip(ip, mask))
ip = list(ip)
ip[3] -= 1
print(ip)
print(sum(ip))
📌 Результат: после применения маски к узлу получаем максимальный хостовый адрес; сумма октетов совпадает с ответом 525.
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода