Источник: https://kpolyakov.spb.ru/
В терминологии сетей ТСР/IР маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Узлы с IР-адресами 154.63.206.129 и 154.63.100.75 находятся в одной сети. Укажите наибольшее возможное значение третьего слева байта маски этой сети. Ответ запишите в виде десятичного числа.
from ipaddress import *
for i in range(32):
net = ip_network(’154.63.206.129/’ + str(i), 0)
# Указываем сеть и количество единиц в маске
ip1 = ip_address(’154.63.206.129’) # Первый IP-адрес
ip2 = ip_address(’154.63.100.75’) # Второй IP-адрес
if ip1 in net and ip2 in net:
# Проверяем есть ли первый и второй IP-адреса в сети,
print(i) # то выводим количество единиц в маске
Требуется наибольшее возможное значение маски, значит берём максимальное число при выводе. В данной задаче получилось 16 единиц, по условию требуется найти значение третьего слева байта маски. Так как в каждом байте может быть максимум 8 единиц, получается 3 слева байт будет равен 00000000, следовательно в 10 сс это равно 0, запишем это в ответ.