Obtenga la máscara IP de la dirección IP y la longitud de la máscara en Python

Dada una dirección IP en notación de cuatro puntos, por ejemplo
192.192.45.1
Y una longitud de máscara para los ejemplos 8, 16, 24 típicamente, pero podría ser cualquier cosa, es decir, 17.

¿Alguien puede proporcionar el código en python para calcular la máscara de subred? Preferiblemente, podría obtener el resultado como un entero de 32 bits para que sea fácil de hash y luego reinterpretarlo como un punto de puntos cuando sea necesario para imprimir. Veo que python tiene una biblioteca de sockets que es básicamente una envoltura alrededor del api de socket de unix. También vi que tiene la función inet_ntoa (), pero devuelve algún tipo de estructura de paquete. No estoy terriblemente familiarizado con la biblioteca de estructuras de Python, así que esperaba que algún otro tuviera algunas ideas. ¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta