Наибольший адрес, запись без точек
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске. Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств. Сеть задана IP-адресом одного из входящих в неё узлов 191.128.66.83 и сетевой маской 255.192.0.0. Найдите в данной сети наибольший IP-адрес, который может быть назначен компьютеру. В ответе укажите найденный IP-адрес без разделителей. Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать: 11122344.
Источник: ФИПИ (Демо), № 23751
Показать разбор
- Создай сеть через ip_network по адресу узла и маске. Дан узел, а не адрес сети, поэтому второй аргумент False.
- Возьми широковещательный адрес net.broadcast_address.
- Вычти из него 1: сам широковещательный адрес компьютеру назначить нельзя.
- Убери точки из адреса через str(ip).replace('.', '').
from ipaddress import ip_network
net = ip_network('191.128.66.83/255.192.0.0', False)
ip = net.broadcast_address - 1
print(str(ip).replace('.', ''))