Cómo calcular la máscara de red de tamaño mínimo que contiene dos direcciones IP

Fácil: eso siempre es 0/0. Eso cubre todas las direcciones IP y, por lo tanto, siempre cubre dos direcciones. También es la máscara de red más corta posible.

Sin embargo, creo que realmente querías preguntar sobre la máscara de red de tamaño máximo. Eso es un poco más difícil, pero no mucho.

Recuerde que una dirección IP es realmente solo una cadena binaria. Entonces, lo primero que debe hacer es anotar ambas direcciones en binario. Di que tienes:

A: 1101 0010 1100 …

B: 1101 0011 1010 …

Ahora, mire de izquierda a derecha y cuente la cantidad de bits que son iguales entre las dos direcciones. En este ejemplo, los primeros 7 bits son iguales, por lo que nuestra máscara de red será / 7.

Calcula el prefijo tomando todos los bits comunes, haciendo que el resto sea 0 y convirtiendo de nuevo a decimal con puntos. Asi que:

Común: 1101 0010 0000 0000 0000 0000 0000 0000

Prefijo: 210/7

¡Me lo he preguntado de vez en cuando!

Esto puede tener algunos problemas leves, pero un enfoque como este sería conciso y rápido:

~ (pow (ceil (log2 (~ (IP1 ^ IP2))), 2) -1)