Может пригодиться:
1. print(net.num_addresses) — печатает общее количество IP адресов
2. net.hosts() — без широковещательного адреса и адреса сети(только ip для устройств)
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске
стоят единицы. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.
Для узла с IP-адресом 216.200.151.65 адрес сети равен 216.200.128.0. Найдите наибольшее возможное количество IP-адресов в этой сети.
Посмотреть решение
from ipaddress import *
t = ip_address('216.200.128.0')
for a in range(32):
net = ip_network(f'216.200.151.65/{a}',0)
if net.network_address==t:
print(net.num_addresses)
Ответ:32768