Задача #1640
Компьютерные сети
(М. Ишимов) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Для узла с IP-адресом 251.211.38.240 адрес сети равен 251.211.38.0. Для скольких различных значений маски это возможно?
В ответе запишите только число.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
2
from ipaddress import *
ip = ip_address('251.211.38.240')
net = ip_address('251.211.38.0')
ans = 0
for mask in range(33):
network = ip_network(f'{ip}/{mask}', 0)
if net == network.network_address:
ans += 1
print(ans)