В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Для узла с IP адресом 158.116.11.146 адрес сети равен 158.116.0.0. Для скольких различных значений маски это возможно?
Решение:
Решение на Python:
from ipaddress import *
otv = []
for mask in range(32):
net = ip_network(f"158.116.11.146/{mask}", strict=False)
if str(net.network_address) == "158.116.0.0":
otv.append(mask)
print(len(set(otv)))
Ответ: 7
Ответ:
7