Для проверки, что компьютер является узлом необходимо:
1) Присвоить значение IP
2) При проверке маски посмотреть не является ли он адресом сети (нулевой адрес) или широковещательным (последний адрес)
Пример для нахождения максимума единиц в маске сети:
from ipaddress import *
ip = ip_address('ip узла в задаче')
for mask in range(31):
______net = ip_network(f'ip узла/{mask}',0)
______if net[0]<ip<net[-1]:
____________print(mask,net)
Пример, как перевести ip компьютеров в сети в двоичный вид можно воспользоваться командой:
from ipaddress import *
net = ip_network('ip адрес в задаче/маска') #или количество единиц в маске
for ip in net:
_____x = f'{ip:b}'
_____print(x)