''' В терминологии сетей TCP/IP маской сети называют двоичное число,
которое пока- зывает, какая часть IP-адреса узла сети относится к адресу
сети, а какая — к адре- су узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к заданному адресу узла и
его маске. Широковещательным адресом называется специализированный
адрес, в котором на месте нулей в маске стоят единицы.

Сеть задана IP-адресом одного из входящих в неё узлов 202.128.127.6 и
сетевой маской 255.255.192.0.

Найдите наибольший IP-адрес в данной сети, который мо- жет быть назначен
компьютеру и в двоичной записи которого равное количество единиц и
нулей. В ответе укажите сумму числовых значений октетов найденного
IP-адреса.

Например, если бы найденный адрес
был равен 100.22.3.4, то в ответе следовало бы записать 129. В ответе
укажите только число.
'''

from ipaddress import ip_network

net = ip_network('202.128.127.6/255.255.192.0', 0)

for ip in net:
    ip2 = f'{ip:b}'
    if ip2.count('0') == ip2.count('1'):
        res = ip

print(res) # 697 ok

# доп. знания # 1
res2 = str(res).replace('.', '+')  # '202+128+127+240'
print(eval(res2))  # 697 ok

# доп. знания # 2      202.128.127.240 [202, 128, 127, 240]
t = [int(x) for x in str(res).split('.')]
print(sum(t))  # 697 ok







        

                    
                




        
