Skip to content

rsviana/network-security-toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 Calculadora de Rede Completa

Um sistema completo em Python para cΓ‘lculos e anΓ‘lises de redes IP, desenvolvido para facilitar o trabalho de administradores de rede, estudantes e profissionais de TI.

πŸ“‹ Funcionalidades

βœ… Funcionalidades Principais

  • CΓ‘lculo de InformaΓ§Γ΅es de Rede: AnΓ‘lise completa de redes IP
  • ConversΓ΅es: CIDR ↔ MΓ‘scara Decimal
  • DivisΓ£o de Sub-redes (FLSM): Fixed Length Subnet Masking
  • VLSM: Variable Length Subnet Masking
  • ValidaΓ§Γ£o: IPs e redes
  • VerificaΓ§Γ£o de Pertencimento: Se um IP pertence a uma rede
  • CΓ‘lculo de Super-rede: AgregaΓ§Γ£o de redes
  • ClassificaΓ§Γ£o de IPs: Classe e tipo (pΓΊblico/privado)

πŸ”§ Ferramentas IncluΓ­das

  1. NetworkCalculator: Classe principal com todas as funcionalidades
  2. Interface CLI: Interface de linha de comando interativa
  3. Suite de Testes: Testes automatizados para validaΓ§Γ£o

πŸš€ Como Usar

InstalaΓ§Γ£o

  1. Clone ou baixe os arquivos do projeto
  2. Certifique-se de ter Python 3.6+ instalado
  3. Execute o programa:
python cli_interface.py

Uso da Interface CLI

A interface oferece um menu interativo com as seguintes opΓ§Γ΅es:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              MENU PRINCIPAL                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  1. Calcular informaΓ§Γ΅es de rede                                           β”‚
β”‚  2. Converter CIDR para mΓ‘scara decimal                                    β”‚
β”‚  3. Converter mΓ‘scara decimal para CIDR                                    β”‚
β”‚  4. Dividir rede em sub-redes (FLSM)                                       β”‚
β”‚  5. Calcular VLSM (Variable Length Subnet Masking)                         β”‚
β”‚  6. Verificar se IP pertence a uma rede                                    β”‚
β”‚  7. Calcular super-rede                                                    β”‚
β”‚  8. Validar endereΓ§o IP                                                    β”‚
β”‚  9. Validar rede                                                           β”‚
β”‚  0. Sair                                                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“– Exemplos de Uso

1. AnΓ‘lise de Rede

Entrada: 192.168.1.0/24

SaΓ­da:

╔══════════════════════════════════════════════════════════════╗
β•‘                    INFORMAÇÕES DA REDE                      β•‘
╠══════════════════════════════════════════════════════════════╣
β•‘ Rede:              192.168.1.0                              β•‘
β•‘ CIDR:              /24                                       β•‘
β•‘ MΓ‘scara:           255.255.255.0                            β•‘
β•‘ Broadcast:         192.168.1.255                            β•‘
β•‘ Primeiro Host:     192.168.1.1                              β•‘
β•‘ Último Host:       192.168.1.254                            β•‘
β•‘ Total de Hosts:    254                                       β•‘
β•‘ Total EndereΓ§os:   256                                       β•‘
β•‘ Classe:            C                                         β•‘
β•‘ Tipo:              Privada                                   β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

2. DivisΓ£o em Sub-redes (FLSM)

Entrada: Rede 192.168.1.0/24, 4 sub-redes

SaΓ­da:

ID  Rede               CIDR   MΓ‘scara         Broadcast       Hosts   
────────────────────────────────────────────────────────────────────
1   192.168.1.0        /26    255.255.255.192 192.168.1.63    62      
2   192.168.1.64       /26    255.255.255.192 192.168.1.127   62      
3   192.168.1.128      /26    255.255.255.192 192.168.1.191   62      
4   192.168.1.192      /26    255.255.255.192 192.168.1.255   62      

3. VLSM (Variable Length Subnet Masking)

Entrada: Rede 192.168.1.0/24, hosts necessΓ‘rios: [50, 25, 10, 5]

SaΓ­da:

Ordem  Solicitado Rede               CIDR   DisponΓ­vel Range de Hosts        
──────────────────────────────────────────────────────────────────────────
1      50         192.168.1.0        /26    62         192.168.1.1 - 192.168.1.62
2      25         192.168.1.64       /27    30         192.168.1.65 - 192.168.1.94
3      10         192.168.1.96       /28    14         192.168.1.97 - 192.168.1.110
4      5          192.168.1.112      /29    6          192.168.1.113 - 192.168.1.118

πŸ§ͺ Testes

Para executar os testes automatizados:

python test_calculator.py

Os testes cobrem:

  • ValidaΓ§Γ£o de IPs e redes
  • ConversΓ΅es entre CIDR e mΓ‘scara
  • CΓ‘lculos de sub-redes
  • VLSM
  • VerificaΓ§Γ£o de pertencimento
  • ClassificaΓ§Γ£o de IPs
  • Testes de integraΓ§Γ£o

πŸ“ Estrutura do Projeto

tools/
β”œβ”€β”€ network_calculator.py    # Classe principal com todas as funcionalidades
β”œβ”€β”€ cli_interface.py         # Interface de linha de comando
β”œβ”€β”€ test_calculator.py       # Suite de testes
β”œβ”€β”€ requirements.txt         # DependΓͺncias do projeto
└── README.md               # DocumentaΓ§Γ£o (este arquivo)

πŸ”§ DependΓͺncias

O projeto utiliza apenas bibliotecas padrΓ£o do Python:

  • ipaddress: Para manipulaΓ§Γ£o de endereΓ§os IP
  • socket: Para conversΓ΅es de rede
  • struct: Para manipulaΓ§Γ£o de dados binΓ‘rios
  • unittest: Para testes automatizados

🎯 Casos de Uso

Para Administradores de Rede

  • Planejamento de sub-redes
  • AnΓ‘lise de espaΓ§o de endereΓ§amento
  • ValidaΓ§Γ£o de configuraΓ§Γ΅es
  • DocumentaΓ§Γ£o de redes

Para Estudantes

  • Aprendizado de conceitos de rede
  • VerificaΓ§Γ£o de cΓ‘lculos manuais
  • CompreensΓ£o de VLSM e FLSM
  • PrΓ‘tica com diferentes cenΓ‘rios

Para Desenvolvedores

  • IntegraΓ§Γ£o em sistemas maiores
  • AutomaΓ§Γ£o de tarefas de rede
  • ValidaΓ§Γ£o de configuraΓ§Γ΅es
  • Base para ferramentas mais complexas

πŸš€ Funcionalidades Futuras

  • Suporte para IPv6
  • Interface grΓ‘fica (GUI)
  • ExportaΓ§Γ£o de resultados (CSV, JSON)
  • Calculadora de bandwidth
  • AnΓ‘lise de performance de rede
  • IntegraΓ§Γ£o com APIs de rede
  • Suporte para VLANs
  • Calculadora de delay e latΓͺncia

πŸ” Funcionalidades Futuras de SeguranΓ§a

  • Scanner de Portas TCP (similar ao Nmap bΓ‘sico)
  • Fingerprinting de ServiΓ§os (captura de banners)
  • Ping Sweep (descoberta de hosts ativos na rede)
  • VerificaΓ§Γ£o de vulnerabilidades comuns (FTP anΓ΄nimo, Telnet, etc.)
  • Consulta de IPs em APIs externas (Shodan, VirusTotal)
  • ForΓ§a bruta em serviΓ§os (SSH/FTP) para fins educativos
  • ExportaΓ§Γ£o de relatΓ³rios de seguranΓ§a em JSON/CSV

🀝 Contribuiçáes

ContribuiΓ§Γ΅es sΓ£o bem-vindas! Para contribuir:

  1. FaΓ§a um fork do projeto
  2. Crie uma branch para sua feature
  3. Implemente suas mudanΓ§as
  4. Execute os testes
  5. Envie um pull request

πŸ“ LicenΓ§a

Este projeto Γ© de cΓ³digo aberto e estΓ‘ disponΓ­vel sob a licenΓ§a MIT.

πŸ“ž Suporte

Para dΓΊvidas, sugestΓ΅es ou problemas:


About

Calculadora de Redes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages