(Э. Носиров) В сетях TCP/IP маска определяет, какие биты IP-адреса относятся к адресу сети, а какие — к адресу узла внутри неё.
Адрес сети вычисляется применением поразрядной конъюнкции к IP-адресу узла и маске.
Даны IP-адрес узла 203.0.113.174 и маска 255.255.240.0.
Найдите адрес сети.
В ответе укажите сумму числовых значений четырёх октетов найденного адреса.
Например, для адреса сети 10.20.30.0 в ответе следовало бы записать 60.
Решение (ipaddress)
🔹 Шаг 1. Сеть по IP и маске
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
📌 Создаём объект сети: IP 203.0.113.174, маска 255.255.240.0.
🔹 Шаг 2. Адрес сети
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
str(net.network_address)
📌 network_address — 203.0.112.0.
🔹 Шаг 3. Сумма октетов (ответ)
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
print(sum(int(o) for o in str(net.network_address).split('.')))
📌 Ответ: 203 + 0 + 112 + 0 = 315.
Решение (ipaddress)
🔹 Шаг 1. Сеть по IP и маске
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
📌 Создаём объект сети: IP 203.0.113.174, маска 255.255.240.0.
🔹 Шаг 2. Адрес сети
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
str(net.network_address)
📌 network_address — 203.0.112.0.
🔹 Шаг 3. Сумма октетов (ответ)
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
print(sum(int(o) for o in str(net.network_address).split('.')))
📌 Ответ: 203 + 0 + 112 + 0 = 315.
Решение (ipaddress)
🔹 Шаг 1. Сеть по IP и маске
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
📌 Создаём объект сети: IP 203.0.113.174, маска 255.255.240.0.
🔹 Шаг 2. Адрес сети
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
str(net.network_address)
📌 network_address — 203.0.112.0.
🔹 Шаг 3. Сумма октетов (ответ)
from ipaddress import ip_network
net = ip_network('203.0.113.174/255.255.240.0', strict=False)
print(sum(int(o) for o in str(net.network_address).split('.')))
📌 Ответ: 203 + 0 + 112 + 0 = 315.