addr = "10.7.4.0/30"
addr1 = addr.split('/')
hostcount = pow(2,32 - int(addr1[1]))
intmask = pow(2,32) - hostcount
dmask = [str((intmask >> (i*8)) & 0xFF) for i in range(0,4)]
dmask.reverse()
mask = ".".join(dmask)
максимальная маска это 32 бита - в бинароной записи 32 единички
дана маска 30 бит это - в бинарной записи 30 единиц и 2 нуля
максимум хостов для маски 0 это 2^32
максимум хостов для маски 30 это 2^(32-30) = 2^2 - 2 = 2
2 из них это сама подсеть и широковещательный адрес в этой подсети.
2^32 - 2^2 числовая запись маски
чтобы получить байтовую запись маски надо разбить число на 4 байта
сдвигаем по 8 бит чтобы извлечь каждый байт
Получаем маску
255.255.255.252
и количество хостов 2
https://help.keenetic.net/hc/ru/articles/213965829...