python para redes #2 - ipaddress 🐍

Um módulo muito legal no Python é o ipaddress e nesse post rápido vamos usar ele.

Let's bora!



A documentação completa do IPAddress está aqui:  https://docs.python.org/3/library/ipaddress.html

Com algumas linhas de código criaremos um script que gere endereços IP válidos em uma sub-rede definida, o que é muito interessante.

Digamos que você tem um endereço de sub-rede e prefixo ou máscara de sub-rede e você precisa dizer quais serão os hosts válidos para essa sub-rede.
A sub-rede é 192.0.2.0/28

E como sabemos (ou não) um /28 salta de 16 em redes no quarto octeto e como devemos subtrair disso o endereço de rede e broadcast, a quantidade de endereços válidos é 14 endereços.


Normalmente podemos fazer isso manualmente (recomendado saber como funciona para chegar no resultado depois usar esses métodos) ou usar uma calculadora de subnet online. Mas aqui vamos usar um script em Python bem simples. 





Como no exemplo do artigo de python para redes anterior em que abordamos o netmiko, vamos jogar esse script para um editor de texto e salvar como rangeip.py (não salvar como ipaddress.py, pois isso causará problemas na execução).




Feito isso, vamos executar o código e poderemos ver a saída abaixo:



Conforme comentamos antes, os 14 endereços válidos estão sendo exibidos e os endereços de rede e broadcast da rede como não são válidos, não estão sendo exibidos.

Vamos tentar com outro endereço, agora vamos com 172.16.0.50 /29 que é um máscara que fornece 6 hosts válidos por sub-rede, vamos conferir?
Então é só mudar o endereço e prefixo no script e em seguida executar:



Portanto basta alterar a sub-rede e prefixo ou a máscara no código para alterar a saída e ter respostas diferentes para suas perguntas.

Abraços, 
Max

📧 contato@maxaddress.com.br
ℹ️ linkedin.com/in/maxwlima

Referências:
https://docs.python.org/3/library/ipaddress.html