2020-03-17 – IPV4 Subnetting Calculator

Imagem de 17 de Março, numa altura em que estava a “ensinar” o programa a fazer cálculos de subnetting. 🙂

Texto original:

«O trabalho de hoje. As classes e funções referentes ao cálculo de IPv4 e Subnetting, para redes, está praticamente acabado.

O problema é que tentei programar de maneira simples mas isso nem sempre é considerado simples dado que é C++. Em cima podemos ver bitwise operators que uso como atalho para saber que parte de um octeto de um IP é rede e que parte pertence aos hosts, a maneira mais rápida que me lembrei é esta, não sei é até que ponto é fácil de compreender depois.

Mas não posso sacrificar performance e elegância em nome de ter código que todos possam compreender, espero não estar a exagerar nos comentários. Mas isto é para ser Open Source depois. Também deduzo que só programadores experientes em C++ é que vão mexer nisto um dia.

Já tem umas 400 linhas de código esta classe relacionada com subnetting. Por norma só uso classes quando as funções são relacionadas com um objecto, e quando não são, usamos namespaces para agregar funções. Há uns coitados que acham que tudo deve ser uma classe, mas isso é errado, são hábitos que herdam dos Javas e afins.

Neste caso é uma classe porque vai ser instanciada, mas terá muitas member functions estáticas.

Ela já calcula quantas subnets tem, quantos ips, quantos ips por subnet, quais os ips de rede e broadcast de cada rede, quais os saltos, como fica em binário, etc.

Está pronto para começar a criar templates de perguntas CCNA e CCNP para as pessoas poderem praticar subnetting, com perguntas próximas das reais, mas variáveis, para as pessoas aprenderem de verdade ao invés de andarem a memorizar como alguns fazem.

Dentro de alguns meses este software grátis estará disponível para formadores, e Open Source.

Talvez um dia faça a versão gráfica também.

PS: Sou contra o uso de “using namespace std”, por motivos que não vale a pena explicar aqui. 😃

2020-03-17.»

Leave a Reply

Your email address will not be published. Required fields are marked *

RSS
Follow by Email
LinkedIn
LinkedIn
Share