L
Voltar aos projetos

Estudo de caso

NetCheck

Ferramenta de linha de comando que diagnostica DNS, conexão TCP e certificado TLS de um ou mais domínios.

Tecnologias

  • Python
  • socket
  • ssl
  • unittest
  • ruff
  • GitHub Actions

Contexto

O NetCheck nasceu para responder uma pergunta de suporte: a falha de acesso vem da resolução de nomes, da conexão com a porta ou do certificado? Evoluiu para aceitar várias portas e domínios, medir latência com várias tentativas e gerar relatório em texto ou JSON.

Decisões

  1. 01Somente a biblioteca padrão

    Usa socket, ssl, argparse e statistics, sem dependências externas, e pode ser instalado como o comando netcheck.

  2. 02Saída para pessoas e para scripts

    Relatório em texto, opção --json e códigos de saída 0 (tudo certo), 1 (falha de DNS, conexão ou certificado) e 2 (entrada inválida).

  3. 03Testes sem rede, e teste real à parte

    Os testes automatizados usam mocks. Em testes manuais contra a rede, o NetCheck detectou o certificado expirado de expired.badssl.com.

  4. 04Um defeito achado no teste real

    Com -p 80,443, o TLS era verificado na porta 80. Passou a preferir a 443 quando ela está na lista, com um teste para isso.

Resultados

Testes automatizados
29
Cobertura de linhas (medida localmente)
87%
CI
ruff + Python 3.10 a 3.13

O que ainda falta

  • Resolve apenas IPv4.
  • Não faz ping ICMP, traceroute nem varredura de portas.