У меня есть список IPv4-адресов, находящихся в одной сети. Я хотел бы рассчитать сетевую маску для этой сети с учетом списка IP-адресов.
Список:
192.168.2.2
192.168.2.3
192.168.2.4
Результирующая сетевая маска: 255.255.255.0
Текущий алгоритм: если октеты различаются, поместите 0
в эту позицию маски сети, иначе поместите 255
.
prev_ip = None
current_netmask = [255,255,255,255]
for ip in ip_list:
if prev_ip != None:
for i in range(0,4):
if ip.split('.')[i] != prev_ip.split('.')[i]:
current_netmask[i] = 0
prev_ip = ip
Моя проблема в том, что эта сетевая маска не всегда верна, и я знаю, что возможны другие маски сети (кроме тех, которые состоят из Комбинации 0 и 255)