Obter máscara de IP do endereço IP e do comprimento da máscara em Python

Dado um endereço IP em notação quad pontilhada, por exemplo:
192.192.45.1
E um comprimento de máscara, por exemplo, 8, 16, 24 tipicamente, mas poderia ser qualquer coisa, isto é, 17.

Alguém pode por favor fornecer o código em python para calcular a máscara de sub-rede? De preferência, eu poderia obter o resultado como um inteiro de 32 bits, de modo que seja fácil para o hash e, em seguida, reinterpretá-lo como quad pontilhado quando necessário para a impressão. Eu vejo que python tem uma biblioteca de soquete que é basicamente um wrapper em torno da API do soquete unix. Eu também vi que tem a função inet_ntoa (), mas retorna algum tipo de estrutura de pacotes. Eu não estou muito familiarizado com a biblioteca de estruturas do Python, então eu esperava que algumas outras tivessem algumas idéias. Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion