Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dns-benchmark-tool — Teste de desempenho DNS rápido e abrangente com validação DNSSEC, suporte a DoH/DoT e recursos empresariais | Kitploit
Ferramentas/GitHubGitHub/net-benchmark/dns-benchmark-tool
Ferramentas de Criptografia/DescriptografiaMapeamento de RedeSegurança de RedePrivacidadeAnálise de DNSArchived
GitHubnet-benchmark/dns-benchmark-tool

dns-benchmark-tool

Teste de desempenho DNS rápido e abrangente com validação DNSSEC, suporte a DoH/DoT e recursos empresariais

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
Site
36312há 3 mesesRevisado pelo Kitploit

⚠️ este projeto foi movido e não é mais mantido. instale o sucessor: pip install net-benchmark repositório: https://github.com/net-benchmark/net-benchmark todos os comandos e flags existentes permanecem totalmente compatíveis.


Ferramenta de Benchmark DNS

Parte do BuildTools - Suíte de Performance de Rede

Teste de desempenho DNS rápido e abrangente com validação DNSSEC, suporte a DoH/DoT e recursos empresariais```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
> 🎉 **1.400+ downloads · 600+ utilizadores ativos**
> 🚀 **O dashboard web está agora disponível!** [Experimente BuildTools gratuitamente →](https://buildtools.net)

---

**Monitorização em Tempo Real**

[![Real Time Tracking](https://assets.kitploit.com/production/public/readmes/9801/abc3e3079146e364e8a291edc0e19bfcaf931bcd7a3db5d7a8d9daf5ed565e94.gif)](https://github.com/frankovo/dns-benchmark-tool)
*Veja consultas DNS em movimento*

**Monitorização em Tempo Real — Interface Web**
[![Real Time Tracking - Web UI](https://assets.kitploit.com/production/public/readmes/9801/02b1a1ab9d814fa4de537464def46493c36f96a5d0787a13c2d14eb07dfc2d11.gif)](https://github.com/frankovo/dns-benchmark-tool)
*Monitorize consultas DNS ao vivo com alertas por e-mail*

</div>

## 🎉 Novidades em ![new](https://img.shields.io/pypi/v/dns-benchmark-tool.svg?color=brightgreen&label=new)

Adicionámos **três poderosos comandos CLI** e suporte total para **DoH, DoT e DNSSEC**:

- 🚀 **top** — classificação rápida de resolvedores por velocidade e fiabilidade
- 📊 **compare** — benchmarking lado a lado com estatísticas detalhadas e opções de exportação
- 🔄 **monitoring** — monitorização contínua de desempenho com alertas e registo
- 🔒 **DoH / DoT / DNSSEC** — benchmarking de DNS encriptado com dados reais de compromisso de latência```bash
# Quick resolver ranking
dns-benchmark top

# Compare resolvers side-by-side
dns-benchmark compare Cloudflare Google Quad9 --show-details

# Run monitoring for 1 hour with alerts
dns-benchmark monitoring --use-defaults --formats csv,excel --interval 30 --duration 3600 \
  --alert-latency 150 --alert-failure-rate 5 --output monitor.log

# Encrypted DNS
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "bing.com,google.com" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --iterations 1 \
  --formats csv \
  --output ./doh_results_explicit_urls

dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9" \
  --domains "cloudflare.com,quad9.net" \
  --dot

📈 Destaques da Comunidade

  • ⭐ Estrelas: Cresceu de 7 → 110+ após publicação no Hacker News
  • 📦 Downloads: Recuperou para 200+/dia após estagnação inicial
  • 🐘 Mastodon: Compartilhado lá também, mas o verdadeiro impulso veio do HN
  • 💬 Feedback: Contribuições construtivas da comunidade HN moldaram diretamente os patches v0.3.0 → v0.3.1
  • 🚀 Conclusão: A visibilidade no Hacker News foi o catalisador para o impulso de adoção

CI Tests Publish to TestPyPI Publish to PyPI PyPI version PyPI - Python Version

License Coverage

Downloads GitHub stars GitHub forks Issues Last commit Main branch protected

Table of Contents

  • DNS Benchmark Tool
    • Part of BuildTools - Network Performance Suite
    • 🎉 What's New in
    • 📈 Community Highlights
    • Table of Contents
    • 🎯 Why This Tool?
      • The Problem
      • The Solution
      • Perfect For
    • Quick start
      • Installation
      • Run Your First Benchmark
      • View Results
    • ⚡ Commands at a Glance
    • ✨ Key Features
      • 🚀 Performance
      • 🔒 Security & Privacy
      • 📊 Analysis & Export
      • 🏢 Enterprise Features
      • 🌐 Cross-Platform
    • 🔒 Security & Encrypted DNS
    • 🔧 Advanced Capabilities
    • 💼 Use Cases
      • 🔧 For Developers: Optimize API Performance
      • 🛡️ For DevOps/SRE: Validate Before Migration
      • 🏠 For Self-Hosters: Prove Pi-hole Performance
      • 📊 For Network Admins: Automated Health Checks
      • 🔐 For Privacy Advocates: Test Encrypted DNS
    • 📦 Installation & Setup
      • Requirements
      • Install from PyPI
      • Install from Source
      • Verify Installation
      • First Run
    • 📖 Usage Examples
      • Basic Usage

🎯 Por que Esta Ferramenta?

A resolução de DNS é frequentemente o gargalo oculto no desempenho de rede. Um resolvedor lento pode adicionar centenas de milissegundos a cada requisição.

O Problema

  • ⏱️ Gargalo Oculto: O DNS pode adicionar 300ms+ a cada requisição
  • 🤷 Desempenho Desconhecido: A maioria dos desenvolvedores nunca testa seu DNS
  • 🌍 Localização Importa: O resolvedor "mais rápido" depende de onde VOCÊ está
  • 🔒 Segurança Varia: O suporte a DNSSEC, DoH, DoT difere enormemente

A Solução

dns-benchmark-tool ajuda você a:

  • 🔍 Encontrar o resolvedor DNS mais rápido para SUA localização
  • 📊 Obter dados reais - P95, P99, jitter, pontuações de consistência
  • 🛡️ Validar segurança - Verificação DNSSEC embutida
  • 🚀 Testar em escala - 100+ consultas concorrentes em segundos

Perfeito Para

  • ✅ Desenvolvedores otimizando desempenho de APIs
  • ✅ DevOps/SRE validando SLAs de resolvedores
  • ✅ Autogerenciadores comparando Pi-hole/Unbound vs DNS público
  • ✅ Administradores de rede realizando verificações de conformidade

Início Rápido

Instalação```bash

pip install dns-benchmark-tool

root@kitploit:~
### Execute Seu Primeiro Benchmark```bash
# Test default resolvers against popular domains
dns-benchmark benchmark --use-defaults --formats csv,excel

Ver Resultados

Os resultados são salvos automaticamente em ./benchmark_results/ com:

  • CSV resumo com estatísticas
  • Dados brutos detalhados
  • Relatórios opcionais em PDF/Excel

É isso! Você acabou de testar 5 resolvedores DNS contra 10 domínios.


⚡ Comandos de uma Olhada

Find your fastest resolver right now

dns-benchmark top --limit 5

Compare the big three

dns-benchmark compare Cloudflare Google Quad9 --show-details

Monitor with DoT and alerts for 1 hour

dns-benchmark monitoring --use-defaults --dot
--interval 30 --duration 3600
--alert-latency 150 --output monitor.log

root@kitploit:~
---

## ✨ Recursos Principais

### 🚀 Desempenho

- **Consultas assíncronas** - Teste mais de 100 resolvedores simultaneamente
- **Multi-iteração** - Execute benchmarks várias vezes para precisão
- **Análise estatística** - Média, mediana, P95, P99, jitter, consistência
- **Controle de cache** - Teste com/sem cache de DNS

### 🔒 Segurança e Privacidade

- **Validação DNSSEC** - Verifique cadeias de confiança criptográficas
- **DNS sobre HTTPS (DoH)** - Benchmarking de DNS criptografado
- **DNS sobre TLS (DoT)** - Teste de transporte seguro
- **DNS sobre QUIC (DoQ)** - Suporte experimental a QUIC

### 📊 Análise e Exportação

- **Múltiplos formatos** - CSV, Excel, PDF, JSON
- **Relatórios visuais** - Gráficos e diagramas
- **Estatísticas por domínio** - Análise de desempenho por domínio
- **Detalhamento de erros** - Identifique resolvedores problemáticos

### 🏢 Recursos Empresariais

- **Autenticação TSIG** - Consultas empresariais seguras
- **Transferências de zona** - Validação AXFR/IXFR
- **Atualizações dinâmicas** - Teste de operações de escrita DNS
- **Relatórios de conformidade** - Documentação pronta para auditoria

### 🌐 Multiplataforma

- **Linux, macOS, Windows** - Funciona em qualquer lugar
- **Compatível com CI/CD** - Saída JSON, códigos de saída
- **Suporte IDNA** - Nomes de domínio internacionalizados
- **Detecção automática** - Descoberta DNS WMI do Windows

---

## 🔒 Segurança e DNS Criptografado

Três protocolos são totalmente suportados — cada um adiciona privacidade com um custo de latência.

| Protocolo | Flag | Sobrecarga típica | Quando usar |
|---|---|---|---|
| UDP simples | *(padrão)* | linha de base | Benchmarking de latência |
| DNS sobre HTTPS | `--doh` | +50–200ms | Privacidade, bypass de firewall |
| DNS sobre TLS | `--dot` | +200–500ms frio, ~50ms quente | Transporte criptografado |
| DNSSEC | `--dnssec-validate` | +30–100ms | Integridade do resolvedor |

> ⚠️ **Compensações**
> - DoH e DoT adicionam overhead de handshake TLS na primeira consulta por resolvedor. Use `--warmup-fast` para absorver isso antes da medição.
> - `--dnssec-validate` solicita registros RRSIG e impõe a flag AD. Apenas ~33% dos domínios comuns são assinados com DNSSEC — espere resultados `DNSSEC_FAILED` em domínios não assinados. Os números de latência com e sem esta flag **não são diretamente comparáveis**.
> - Resultados em dispositivos móveis/hotspot mostrarão variância 2–5× maior que em ethernet com fio. Use `--iterations 5` e compare a latência mediana, não a média.```bash
# DoH benchmark
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "cloudflare.com,google.com" \
  --doh --warmup-fast

# custom resolvers — must supply urls 1:1, order matters, or it fails early
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "bing.com,google.com" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --iterations 1 \
  --formats csv \
  --output ./doh_results_explicit_urls

# DoT with DNSSEC on signed domains
dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9" \
  --domains "cloudflare.com,quad9.net" \
  --dot \
  --dnssec-validate

# DOH rank top resolvers
dns-benchmark top --doh --limit 5

# DOT rank top resolvers
dns-benchmark top --dot --metric reliability --limit 5

# Compare DoH resolvers
dns-benchmark compare Cloudflare Google --doh --iterations 3

# Monitor with DoT
dns-benchmark monitoring --use-defaults --dot \
  --interval 60 --alert-latency 300

# DoH + DNSSEC enforced + export
dns-benchmark benchmark --use-defaults --doh --dnssec-validate --formats csv,excel

# DoT + DNSSEC enforced + multiple iterations
dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9,Google" \
  --domains "cloudflare.com,quad9.net,google.com" \
  --dot \
  --dnssec-validate \
  --iterations 5 \
  --formats excel

# DoH + custom urls + monitoring
dns-benchmark monitoring \
  --resolvers "Cloudflare,Google" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --interval 30 --duration 7200

Exemplos de falha precoce — estes falham imediatamente antes de qualquer consulta ser executada:```bash

--doh and --dot are mutually exclusive

dns-benchmark benchmark --use-defaults --doh --dot

ERROR: --doh and --dot are mutually exclusive.

--doh-url count must match --resolvers count

dns-benchmark benchmark --resolvers "Cloudflare,Google" --doh
--doh-url "https://cloudflare-dns.com/dns-query"

ERROR: --doh-url has 1 URL(s) but --resolvers has 2 resolver(s). Counts must match.

Custom IP with --doh requires --doh-url

dns-benchmark benchmark --resolvers "192.168.1.1" --doh

ERROR: --doh requires a DoH URL for: 192.168.1.1. Use --doh-url to supply them explicitly.

root@kitploit:~
---

## 🔧 Capacidades Avançadas

---
> ⚠️ Estas flags estão **documentadas para visibilidade** mas ainda não implementadas.  
> Representam futuras funcionalidades avançadas.

- `--zone-transfer` → teste de transferência de zona AXFR/IXFR *(em breve)*
- `--tsig` → consultas autenticadas por TSIG *(em breve)*
- `--idna` → suporte para nomes de domínio internacionalizados *(em breve)*

---

<details>
<summary><b>🚀 Funcionalidades de Performance e Concorrência</b></summary>

<br>

- **Async I/O com dnspython** - Teste 100+ resolvedores simultaneamente
- **Suporte ao framework Trio** - Operações assíncronas de alta concorrência
- **Concorrência configurável** - Controle o máximo de consultas simultâneas
- **Lógica de retry** - Backoff exponencial para consultas falhadas
- **Simulação de cache** - Teste com/sem cache DNS
- **Benchmarks de múltiplas iterações** - Execute testes múltiplas vezes para precisão
- **Fase de warmup** - Pré-aquecimento de caches DNS antes do teste
- **Análise estatística** - Média, mediana, P95, P99, jitter, pontuações de consistência

**Exemplo:**```bash
dns-benchmark benchmark \
  --max-concurrent 200 \
  --iterations 5 \
  --timeout 3.0 \
  --warmup
🔒 Recursos de Segurança e Privacidade
  • Validação DNSSEC - Verificar cadeias de confiança criptográfica
  • DNS sobre HTTPS (DoH) - Benchmarking de DNS criptografado via HTTPS
  • DNS sobre TLS (DoT) - Teste seguro da camada de transporte
  • DNS sobre QUIC (DoQ) - Suporte experimental ao protocolo QUIC
  • Autenticação TSIG - Assinaturas de transação para DNS empresarial
  • Suporte a EDNS0 - Recursos DNS estendidos e cargas úteis maiores

Exemplo:```bash

Test DoH resolvers

dns-benchmark benchmark
--doh
--resolvers doh-providers.json
--dnssec-validate

root@kitploit:~
</details>

<details>
<summary><b>🏢 Recursos Empresariais & de Migração</b></summary>

<br>

- **Zone transfers (AXFR/IXFR)** - Validação completa e incremental de transferências de zona
- **Dynamic DNS updates** - Testar operações de escrita e atualizações DNS
- **EDNS0 support** - Opções DNS estendidas, sub-rede do cliente, payloads maiores
- **Windows WMI integration** - Deteção automática das definições ativas de DNS do sistema
- **Compliance reporting** - Gerar relatórios PDF/Excel prontos para auditoria
- **SLA validation** - Monitorizar limiares de uptime e desempenho

**Exemplo:**```bash
# Validate DNS migration
dns-benchmark benchmark \
  --resolvers old-provider.json,new-provider.json \
  --zone-transfer \ # coming soon
  --output migration-report/ \
  --formats pdf,excel
📊 Recursos de Análise e Relatórios
  • Estatísticas por domínio - Analisar desempenho por domínio
  • Estatísticas por tipo de registro - Comparar A, AAAA, MX, TXT, etc.
  • Detalhamento de erros - Categorizar e contar tipos de erro
  • Matrizes de comparação - Comparações lado a lado de resolvedores
  • Análise de tendências - Desempenho ao longo do tempo (com múltiplas execuções)
  • Melhor por critério - Encontrar o melhor resolvedor por latência/confiabilidade/consistência

Exemplo:```bash

Detailed analysis

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--domain-stats
--record-type-stats
--error-breakdown
--formats csv,excel,pdf

root@kitploit:~
</details>

<details>
<summary><b>🌐 Internacionalização e Compatibilidade</b></summary>

<br>

- **Suporte a IDNA** - Nomes de domínio internacionalizados (IDN)
- **Múltiplos tipos de registro** - A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA
- **Multiplataforma** - Linux, macOS, Windows (suporte nativo)
- **Integração CI/CD** - Saída JSON, códigos de saída adequados, modo silencioso
- **Resolvedores personalizados** - Carregar de JSON, testar seus próprios servidores DNS
- **Domínios personalizados** - Testar com sua lista de domínios específica

**Exemplo:**```bash
# Test internationalized domains
dns-benchmark benchmark \
  --domains international-domains.txt \
  --record-types A,AAAA,MX \
  --resolvers custom-resolvers.json

💡 A maioria dos usuários só precisa de recursos básicos. Essas capacidades avançadas estão disponíveis quando você precisar.


💼 Casos de Uso

🔧 Para Desenvolvedores: Otimize o Desempenho da API```bash

Find fastest DNS for your API endpoints

dns-benchmark benchmark
--domains api.myapp.com,cdn.myapp.com
--record-types A,AAAA
--resolvers production.json
--iterations 10

root@kitploit:~
**Resultado:** Reduza a latência da API em 100-300ms

---

### 🛡️ Para DevOps/SRE: Valide Antes da Migração```bash
# Test new DNS provider before switching
dns-benchmark benchmark \
  --resolvers current-dns.json,new-dns.json \
  --use-defaults \
  --dnssec-validate \
  --output migration-report/ \
  --formats csv,excel

Resultado: Verifique o desempenho e a segurança antes da migração


🏠 Para Autohospedadores: Comprove o Desempenho do Pi-hole```bash

Compare Pi-hole against public resolvers

dns-benchmark compare
--resolvers pihole.local,1.1.1.1,8.8.8.8,9.9.9.9
--domains common-sites.txt
--rounds 10

root@kitploit:~
**Resultado:** Prova baseada em dados de que seu DNS auto-hospedado é mais rápido (ou não!)

---

### 📊 Para Administradores de Rede: Verificações Automáticas de Saúde```bash
# Add to crontab for monthly reports
0 0 1 * * dns-benchmark benchmark \
  --use-defaults \
  --output /var/reports/dns/ \
  --formats excel,csv \
  --domain-stats \
  --error-breakdown

Resultado: Relatórios automatizados de conformidade e SLA


🔐 Para Defensores da Privacidade: Teste DNS Criptografado```bash

Benchmark privacy-focused DoH/DoT resolvers

dns-benchmark benchmark
--doh
--resolvers privacy-resolvers.json
--domains sensitive-sites.txt
--dnssec-validate

root@kitploit:~
**Resultado:** Encontre o DNS criptografado mais rápido sem sacrificar a privacidade

---

## 📦 Instalação e Configuração

### Requisitos

- Python 3.9+
- pip gerenciador de pacotes

### Instalar a partir do PyPI```bash
pip install dns-benchmark-tool

Instalar a partir do código fonte```bash

git clone https://github.com/frankovo/dns-benchmark-tool.git cd dns-benchmark-tool pip install -e .

root@kitploit:~
### Verificar Instalação```bash
dns-benchmark --version
dns-benchmark --help

Primeira Execução```bash

Test with defaults (recommended for first time)

dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
---

## 📖 Exemplos de Uso

### Uso Básico```bash
# Basic test with progress bars
dns-benchmark benchmark --use-defaults --formats csv,excel

# Basic test without progress bars
dns-benchmark benchmark --use-defaults --formats csv,excel --quiet

# Test with custom resolvers and domains
dns-benchmark benchmark --resolvers data/resolvers.json --domains data/domains.txt

# Quick test with only CSV output
dns-benchmark benchmark --use-defaults --formats csv

Uso Avançado```bash

Export a machine-readable bundle

dns-benchmark benchmark --use-defaults --json --output ./results

Test specific record types

dns-benchmark benchmark --use-defaults --formats csv,excel --record-types A,AAAA,MX

Custom output location and formats

dns-benchmark benchmark
--use-defaults
--output ./my-results
--formats csv,excel

Include detailed statistics

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--record-type-stats
--error-breakdown

High concurrency with retries

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--max-concurrent 200
--timeout 3.0
--retries 3

Website migration planning

dns-benchmark benchmark
--resolvers data/global_resolvers.json
--domains data/migration_domains.txt
--formats excel,pdf
--output ./migration_analysis

DNS provider selection

dns-benchmark benchmark
--resolvers data/provider_candidates.json
--domains data/business_domains.txt
--formats csv,excel
--output ./provider_selection

Network troubleshooting

dns-benchmark benchmark
--resolvers "192.168.1.1,1.1.1.1,8.8.8.8"
--domains "problematic-domain.com,working-domain.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting

Security assessment

dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/security_test_domains.txt
--formats pdf
--output ./security_assessment

Performance monitoring

dns-benchmark benchmark
--use-defaults
--formats csv
--quiet
--output /var/log/dns_benchmark/$(date +%Y%m%d_%H%M%S)

New top commands

Run a basic benchmark (default: rank by latency)

dns-benchmark top

→ Tests all resolvers with sample domains, ranks by latency

Limit the number of resolvers shown

dns-benchmark top --limit 5

→ Shows only the top 5 resolvers

Rank by success rate

dns-benchmark top --metric success

→ Ranks resolvers by highest success rate

Rank by reliability (combined score: success rate + latency)

dns-benchmark top --metric reliability

→ Uses weighted score to rank resolvers

Filter resolvers by category

dns-benchmark top --category privacy dns-benchmark top --category family dns-benchmark top --category security

→ Tests only resolvers in the specified category

Use a custom domain list

dns-benchmark top --domains domains.txt

→ Loads domains from a text file instead of built-in sample list

Specify DNS record types

dns-benchmark top --record-types A,AAAA,MX

→ Queries multiple record types (comma-separated)

Adjust timeout and concurrency

dns-benchmark top --timeout 3.0 --max-concurrent 50

→ Sets query timeout to 3 seconds and limits concurrency to 50

Export results to JSON

dns-benchmark top --output results.json

→ Saves results in JSON format

Export results to CSV

dns-benchmark top --output results.csv

→ Saves results in CSV format

Export results to TXT

dns-benchmark top --output results.txt

→ Saves results in plain text format

Quiet mode (no progress bar, CI/CD friendly)

dns-benchmark top --quiet

→ Suppresses progress output

Example combined usage

dns-benchmark top --limit 10 --metric reliability --category privacy --output top_resolvers.csv

→ Benchmarks privacy resolvers, ranks by reliability, shows top 10, exports to CSV

New compare commaands

Comparison of resolvers by name

dns-benchmark compare Cloudflare Google Quad9

^ Compares Cloudflare, Google, and Quad9 resolvers using default domains and record type A

Basic compare resolvers by IP address

dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9

^ Directly specify resolver IPs instead of names

Increase iterations for more stable results

dns-benchmark compare "Cloudflare" "Google" --iterations 5

^ Runs 5 rounds of queries per resolver/domain/record type

Use a custom domain list from file

dns-benchmark compare Cloudflare Google -d ./data/domains.txt

^ Loads domains from domains.txt instead of sample domains

Query multiple record types

dns-benchmark compare Cloudflare Google -t A,AAAA,MX

^ Tests A, AAAA, and MX records for each domain

Adjust timeout and concurrency

dns-benchmark compare Cloudflare Google --timeout 3.0 --max-concurrent 200

^ Sets query timeout to 3 seconds and allows 200 concurrent queries

Export results to JSON

dns-benchmark compare Cloudflare Google -o results.json

^ Saves comparison summary to results.json

Export results to CSV

dns-benchmark compare Cloudflare Google -o results.csv

^ Saves comparison summary to results.csv (via CSVExporter)

Suppress progress output

dns-benchmark compare Cloudflare Google --quiet

^ Runs silently, only prints final results

Show detailed per-domain breakdown

dns-benchmark compare Cloudflare Google --show-details

^ Prints average latency and success counts per domain for each resolver

New monitoring commands

Start monitoring with default resolvers and sample domains

dns-benchmark monitoring --use-defaults

^ Runs indefinitely, checking every 60s, using built-in resolvers and 5 sample domains

Monitor with a custom resolver list from JSON

dns-benchmark monitoring -r resolvers.json --use-defaults

^ Loads resolvers from resolvers.json, domains from defaults

Monitor with a custom domain list

dns-benchmark monitoring -d domains.txt --use-defaults

^ Uses default resolvers, but domains are loaded from domains.txt

Change monitoring interval to 30 seconds

dns-benchmark monitoring --use-defaults --interval 30

^ Runs checks every 30 seconds instead of 60

Run monitoring for a fixed duration (e.g., 1 hour = 3600 seconds)

dns-benchmark monitoring --use-defaults --duration 3600

^ Stops automatically after 1 hour

Set stricter alert thresholds

dns-benchmark monitoring --use-defaults --alert-latency 150 --alert-failure-rate 5

^ Alerts if latency >150ms or failure rate >5%

Save monitoring results to a log file

dns-benchmark monitoring --use-defaults --output monitor.log

^ Appends results and alerts to monitor.log

Combine options: custom resolvers, domains, interval, duration, and logging

dns-benchmark monitoring -r resolvers.json -d domains.txt -i 45 --duration 1800 -o monitor.log

^ Monitors resolvers from resolvers.json against domains.txt every 45s, for 30 minutes, logging to monitor.log

Run monitoring for 1 hour with alerts

dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log

root@kitploit:~
---

⚠️ **Nota para novos comandos:** Resolvers sem consultas bem‑sucedidas são excluídos do ranking e exibirão `Avg Latency: N/A`.

---

## Suporte a entrada inline para resolvers e domínios

Este patch introduz suporte completo para valores inline separados por vírgula para as flags `--resolvers` e `--domains`, corrigindo o issue [#39](https://github.com/frankovo/dns-benchmark-tool/issues/39) e melhorando a usabilidade da CLI sem quebrar fluxos de trabalho existentes.

### Novas capacidades

1. **resolvers inline**: `--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"`
2. **domínios inline**: `--domains "google.com,github.com"`
3. **valores únicos**: `--resolvers "1.1.1.1"` ou `--domains "google.com"`
4. **resolvers nomeados**: `--resolvers "cloudflare,google,quad9"`
5. **entrada mista**: `--resolvers "1.1.1.1,cloudflare,8.8.8.8"`

### Compatibilidade reversa

- todas as configurações existentes baseadas em arquivos continuam funcionando
- nenhuma mudança que quebre a CLI
- a detecção de arquivos tem prioridade sobre a análise inline

### Exemplos de uso

#### Antes (Apenas arquivos funcionavam)```bash
dns-benchmark benchmark \
    --resolvers data/resolvers.json \
    --domains data/domains.txt

Depois (Ambos funcionam)```bash

Inline (New)

dns-benchmark benchmark
--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"
--domains "google.com,github.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting

Files (STILL WORKS)

dns-benchmark benchmark
--resolvers data/resolvers.json
--domains data/domains.txt
--formats csv

root@kitploit:~
#### Resolvedores nomeados```bash
# Named resolvers
dns-benchmark benchmark \
    --resolvers "Cloudflare,Google,Quad9" \
    --domains "google.com,github.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting_named

Entrada mista```bash

Mixed input

dns-benchmark benchmark
--resolvers "1.1.1.1,Cloudflare,8.8.8.8"
--domains "google.com,github.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting_mixed

root@kitploit:~
#### Único```bash

# Single
dns-benchmark benchmark \
    --resolvers "1.1.1.1" \
    --domains "google.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting

🔧 Utilitários

Gerenciamento do Risolver```bash

Show default resolvers and domains

dns-benchmark list-defaults

Browse all available resolvers

dns-benchmark list-resolvers

Browse with detailed information

dns-benchmark list-resolvers --details

Filter by category

dns-benchmark list-resolvers --category security dns-benchmark list-resolvers --category privacy dns-benchmark list-resolvers --category family

Export resolvers to different formats

dns-benchmark list-resolvers --format csv dns-benchmark list-resolvers --format json

root@kitploit:~
### Gerenciamento de domínio```bash
# List all test domains
dns-benchmark list-domains

# Show domains by category
dns-benchmark list-domains --category tech
dns-benchmark list-domains --category ecommerce
dns-benchmark list-domains --category social

# Limit results
dns-benchmark list-domains --count 10
dns-benchmark list-domains --category news --count 5

# Export domain list
dns-benchmark list-domains --format csv
dns-benchmark list-domains --format json

Visão geral da categoria```bash

View all available categories

dns-benchmark list-categories

root@kitploit:~
### Gerenciamento de configuração```bash
# Generate sample configuration
dns-benchmark generate-config --output sample_config.yaml

# Category-specific configurations
dns-benchmark generate-config --category security --output security_test.yaml
dns-benchmark generate-config --category family --output family_protection.yaml
dns-benchmark generate-config --category performance --output performance_test.yaml

# Custom configuration for specific use case
dns-benchmark generate-config --category privacy --output privacy_audit.yaml

Guia de uso completo

Teste rápido de desempenho```bash

Basic test with progress bars

dns-benchmark benchmark --use-defaults

Quick test with only CSV output

dns-benchmark benchmark --use-defaults --formats csv --quiet

Test specific record types

dns-benchmark benchmark --use-defaults --record-types A,AAAA,MX

root@kitploit:~
Sinalizadores de análise de complementos:```bash
# Include domain and record-type analytics and error breakdown
dns-benchmark benchmark --use-defaults \
  --domain-stats --record-type-stats --error-breakdown

Exportação JSON:```bash

Export a machine-readable bundle

dns-benchmark benchmark --use-defaults --json --output ./results

root@kitploit:~
#### Administrador de rede```bash
# Compare internal vs external DNS
dns-benchmark benchmark \
  --resolvers "192.168.1.1,1.1.1.1,8.8.8.8,9.9.9.9" \
  --domains "internal.company.com,google.com,github.com,api.service.com" \
  --formats excel,pdf \
  --timeout 3 \
  --max-concurrent 50 \
  --output ./network_audit

# Test DNS failover scenarios
dns-benchmark benchmark \
  --resolvers data/primary_resolvers.json \
  --domains data/business_critical_domains.txt \
  --record-types A,AAAA \
  --retries 3 \
  --formats csv,excel \
  --output ./failover_test

ISP & operadora de rede```bash

Comprehensive ISP resolver comparison

dns-benchmark benchmark
--resolvers data/isp_resolvers.json
--domains data/popular_domains.txt
--timeout 5
--max-concurrent 100
--formats csv,excel,pdf
--output ./isp_performance_analysis

Regional performance testing

dns-benchmark benchmark
--resolvers data/regional_resolvers.json
--domains data/regional_domains.txt
--formats excel
--quiet
--output ./regional_analysis

root@kitploit:~
#### Desenvolvimento e DevOps```bash
# Test application dependencies
dns-benchmark benchmark \
  --resolvers "1.1.1.1,8.8.8.8" \
  --domains "api.github.com,registry.npmjs.org,pypi.org,docker.io,aws.amazon.com" \
  --formats csv \
  --quiet \
  --output ./app_dependencies

# CI/CD integration test
dns-benchmark benchmark \
  --resolvers data/ci_resolvers.json \
  --domains data/ci_domains.txt \
  --timeout 2 \
  --formats csv \
  --quiet

Auditor de segurança```bash

Security-focused resolver testing

dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/malware_test_domains.txt
--formats csv,pdf
--output ./security_audit

Privacy-focused testing

dns-benchmark benchmark
--resolvers data/privacy_resolvers.json
--domains data/tracking_domains.txt
--formats excel
--output ./privacy_analysis

root@kitploit:~
#### TI Empresarial```bash
# Corporate network assessment
dns-benchmark benchmark \
  --resolvers data/enterprise_resolvers.json \
  --domains data/corporate_domains.txt \
  --record-types A,AAAA,MX,TXT,SRV \
  --timeout 10 \
  --max-concurrent 25 \
  --retries 2 \
  --formats csv,excel,pdf \
  --output ./enterprise_dns_audit

# Multi-location testing
dns-benchmark benchmark \
  --resolvers data/global_resolvers.json \
  --domains data/international_domains.txt \
  --formats excel \
  --output ./global_performance

🔍 Ajustes no README para o Patch Final

Novas Opções da CLI


⚡ Comandos da CLI

A Ferramenta de Benchmark de DNS agora inclui três comandos especializados para diferentes fluxos de trabalho:

🚀 Top

Classifica rapidamente resolvedores por velocidade e confiabilidade.```bash

Rank resolvers quickly

dns-benchmark top

Use custom domain list

dns-benchmark top -d domains.txt

Export results to JSON

dns-benchmark top -o results.json

root@kitploit:~
### 📊 Comparar

Compare resolvedores lado a lado com estatísticas detalhadas.```bash
# Compare Cloudflare, Google, and Quad9
dns-benchmark compare Cloudflare Google Quad9

# Compare by IP addresses
dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9

# Show detailed per-domain breakdown
dns-benchmark compare Cloudflare Google --show-details

# Export results to CSV
dns-benchmark compare Cloudflare Google -o results.csv

🔄 Monitorização

Monitore continuamente o desempenho do resolver com alertas.```bash

Monitor default resolvers continuously (every 60s)

dns-benchmark monitoring --use-defaults

Monitor with custom resolvers and domains

dns-benchmark monitoring -r resolvers.json -d domains.txt

Run monitoring for 1 hour with alerts

dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log

root@kitploit:~
---

### 🌟 Mostruário de Comandos

| Comando      | Propósito | Caso de Uso Típico | Opções Principais | Saída |
|--------------|-----------|--------------------|-------------------|-------|
| **top**      | Classificação rápida de resolvedores por velocidade e confiabilidade | Verificação rápida para saber qual resolvedor é o melhor no momento | `--domains`, `--record-types`, `--output` | Lista ordenada de resolvedores com latência e taxa de sucesso |
| **compare**  | Comparação lado a lado de resolvedores específicos | Teste de desempenho detalhado em resolvedores/domínios escolhidos | `--domains`, `--record-types`, `--iterations`, `--output`, `--show-details` | Tabela de resolvedores com latência, taxa de sucesso, detalhamento por domínio |
| **monitoring** | Monitoramento contínuo com alertas | Acompanhamento em tempo real do desempenho do resolvedor ao longo do tempo | `--interval`, `--duration`, `--alert-latency`, `--alert-failure-rate`, `--output`, `--use-defaults` | Indicadores de status ao vivo, alertas, arquivo de log opcional |

---

## 📊 Aprimoramentos de Análise

- **Contagem de iterações**: exibida quando mais de uma iteração é executada.  
- **Acertos de cache**: mostra quantas consultas foram servidas a partir do cache (quando `--use-cache` está ativado).  
- **Rastreamento de falhas**: resolvedores com erros repetidos são contados e podem ser inspecionados com `get_failed_resolvers()`.  
- **Estatísticas de cache**: disponíveis via `get_cache_stats()`, mostrando o número de entradas em cache e se o cache está ativado.  
- **Resultados de aquecimento**: consultas de aquecimento são marcadas com `iteration=0` nos dados brutos, facilitando a filtragem na análise.  

Exemplo de saída resumida:```markdown

=== BENCHMARK SUMMARY ===
Total queries: 150
Successful: 140 (93.33%)
Average latency: 212.45 ms
Median latency: 198.12 ms
Fastest resolver: Cloudflare
Slowest resolver: Quad9
Iterations: 3
Cache hits: 40 (26.7%)

⚡ Melhores Práticas

⚙️ Arquivos de Configuração

Formato JSON dos Resolvers```json

{ "resolvers": [ { "name": "Cloudflare", "ip": "1.1.1.1", "ipv6": "2606:4700:4700::1111" }, { "name": "Google DNS", "ip": "8.8.8.8", "ipv6": "2001:4860:4860::8888" } ] }

root@kitploit:~
### Formato do arquivo de texto de domínios```txt
# Popular websites
google.com
github.com
stackoverflow.com

# Corporate domains
microsoft.com
apple.com
amazon.com

# CDN and cloud
cloudflare.com
aws.amazon.com

Formatos de saída

Saídas CSV

  • Dados brutos: resultados de consultas individuais com timestamps e metadados
  • Estatísticas resumidas: métricas agregadas por resolvedor
  • Estatísticas de domínio: métricas por domínio (quando --domain-stats)
  • Estatísticas por tipo de registro: métricas por tipo de registro (quando --record-type-stats)
  • Discriminação de erros: contagens por tipo de erro (quando --error-breakdown)

Relatório Excel

  • Planilha de dados brutos: todos os resultados de consultas com formatação
  • Resumo do resolvedor: estatísticas abrangentes com formatação condicional
  • Estatísticas de domínio: desempenho por domínio (opcional)
  • Estatísticas por tipo de registro: desempenho por tipo de registro (opcional)
  • Discriminação de erros: contagens agregadas de erros (opcional)
  • Análise de desempenho: gráficos e análise comparativa

Relatório PDF

  • Resumo executivo: principais descobertas e recomendações
  • Gráficos de desempenho: comparação de latência; gráfico opcional de taxa de sucesso
  • Classificação de resolvedores: ordenados por latência média
  • Análise detalhada: análise técnica aprofundada com percentis

📄 Exportação PDF Opcional

Por padrão, a ferramenta suporta exportação em CSV e Excel.
A exportação em PDF requer a dependência extra weasyprint, que não é instalada automaticamente para evitar problemas de execução em algumas plataformas.

Instalar com suporte a PDF```bash

pip install dns-benchmark-tool[pdf]

root@kitploit:~
#### Uso

Depois de instalado, você pode solicitar a saída PDF via CLI:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

Se o weasyprint não estiver instalado e você solicitar a saída PDF, a CLI exibirá:```bash [-] Error during benchmark: PDF export requires 'weasyprint'. Install with: pip install dns-benchmark-tool[pdf]

root@kitploit:~
---

### ⚠️ Configuração do WeasyPrint (para exportação de PDF)

A DNS Benchmark Tool usa **WeasyPrint** para gerar relatórios PDF.  
Se você quiser exportar para PDF, precisa de bibliotecas extras do sistema além do pacote Python.

#### 🛠 Linux (Debian/Ubuntu)```bash
sudo apt install python3-pip libpango-1.0-0 libpangoft2-1.0-0 \
  libharfbuzz-subset0 libjpeg-dev libopenjp2-7-dev libffi-dev

🛠 macOS (Homebrew)```bash

brew install pango cairo libffi gdk-pixbuf jpeg openjpeg harfbuzz

root@kitploit:~
---

#### 🛠 Windows

Instale as bibliotecas GTK+ usando um destes métodos:

- **MSYS2**: [Baixe o MSYS2](https://www.msys2.org/) e depois execute:  ```bash
  pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
  • Instalador GTK+ 64‑bit: Baixar GTK+ Runtime e execute o instalador.

Reinicie o terminal após a instalação.


✅ Verificar Instalação

Após instalar as bibliotecas do sistema, instale o extra do Python:```bash pip install dns-benchmark-tool[pdf]

root@kitploit:~
Então execute:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

Exportação JSON

  • Pacote legível por máquina incluindo:
    • Estatísticas gerais
    • Estatísticas do resolvedor
    • Resultados brutos da consulta
    • Estatísticas de domínio
    • Estatísticas de tipo de registro
    • Detalhamento de erros

Gerar Configuração de Exemplo```bash

dns-benchmark generate-config
--category privacy
--output my-config.yaml

root@kitploit:~
---

## Otimização de desempenho```bash
# Large-scale testing (1000+ queries)
dns-benchmark benchmark \
  --resolvers data/many_resolvers.json \
  --domains data/many_domains.txt \
  --max-concurrent 50 \
  --timeout 3 \
  --quiet \
  --formats csv

# Unstable networks
dns-benchmark benchmark \
  --resolvers data/backup_resolvers.json \
  --domains data/critical_domains.txt \
  --timeout 10 \
  --retries 3 \
  --max-concurrent 10

# Quick diagnostics
dns-benchmark benchmark \
  --resolvers "1.1.1.1,8.8.8.8" \
  --domains "google.com,cloudflare.com" \
  --formats csv \
  --quiet \
  --timeout 2

Solução de problemas```bash

Command not found

pip install -e . python -m dns_benchmark.cli --help

PDF generation fails (Ubuntu/Debian)

sudo apt-get install libcairo2 libpango-1.0-0 libpangocairo-1.0-0
libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

Or skip PDF

dns-benchmark benchmark --use-defaults --formats csv,excel

Network timeouts

dns-benchmark benchmark --use-defaults --timeout 10 --retries 3 dns-benchmark benchmark --use-defaults --max-concurrent 25

root@kitploit:~
### Modo de depuração```bash
# Verbose run
python -m dns_benchmark.cli benchmark --use-defaults --formats csv

# Minimal configuration
dns-benchmark benchmark --resolvers "1.1.1.1" --domains "google.com" --formats csv

Automação & CI

Tarefas Cron```bash

Daily monitoring

0 2 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/daily_$(date +%Y%m%d)

Time-based variability (every 6 hours)

0 */6 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/$(date +%Y%m%d_%H)

root@kitploit:~
### GitHub Actions exemplo```yaml
- name: DNS Performance Test
  run: |
    pip install dnspython pandas click tqdm colorama
    dns-benchmark benchmark \
      --resolvers "1.1.1.1,8.8.8.8" \
      --domains "api.service.com,database.service.com" \
      --formats csv \
      --quiet

Capturas de tela

Coloque as imagens em docs/screenshots/:

  • docs/screenshots/cli_run.png
  • docs/screenshots/excel_report.png
  • docs/screenshots/pdf_summary.png
  • docs/screenshots/pdf_charts.png
  • docs/screenshots/excel_charts.png
  • docs/screenshots/real_time_monitoring.png

1. Execução de Benchmark da CLI

Execução de Benchmark da CLI

2. Saída do Relatório em Excel

Saída do Relatório em Excel

3. Resumo Executivo em PDF

Resumo Executivo em PDF

4. Gráficos em PDF

Gráficos em PDF

5. Gráficos em Excel

Gráficos em Excel

6. Monitoramento em Tempo Real

Monitoramento em Tempo Real


Obtendo ajuda```bash

dns-benchmark --help dns-benchmark benchmark --help dns-benchmark list-resolvers --help dns-benchmark list-domains --help dns-benchmark list-categories --help dns-benchmark generate-config --help

root@kitploit:~
Cenários comuns:```bash
# I'm new — where to start?
dns-benchmark list-defaults
dns-benchmark benchmark --use-defaults

# Test specific resolvers
dns-benchmark list-resolvers --category security
dns-benchmark benchmark --resolvers data/security_resolvers.json --use-defaults

# Generate a management report
dns-benchmark benchmark --use-defaults --formats excel,pdf \
  --domain-stats --record-type-stats --error-breakdown --json \
  --output ./management_report

Fluxo de trabalho de lançamento

  • Pré-requisitos

    • Chave GPG configurada: execute make gpg-check para verificar.
    • Proteção de branch: main requer commits assinados e CI aprovado.
    • Publicação via CI: acionada em tags assinadas correspondentes a vX.Y.Z.
  • Preparar lançamento (assinado)

    • Bump patch/minor/major:

      root@kitploit:~
      make release-patch      # or: make release-minor / make release-major
      
      • Atualiza versões.
      • Cria ou reutiliza release/X.Y.Z.
      • Faz um commit assinado e envia o branch.
    • Abrir PR: de release/X.Y.Z para main, então mescle após CI passar.

  • Tag e publicação

    • Criar tag assinada e enviar:

      root@kitploit:~
      make release-tag VERSION=X.Y.Z
      
      • Marca main com vX.Y.Z (assinada).
      • CI publica no PyPI.
  • Alternativa manual

    • Criar branch e commit assinado:

      root@kitploit:~
      git checkout -b release/manually-update-version-based-on-release-pattern
      git add .
      git commit -S -m "Release release/$NEXT_VERSION"
      git push origin release/$NEXT_VERSION
      

🌐 Painel Web BuildTools — Agora Disponível

A CLI permanece gratuita para sempre. O painel web agora está disponível em buildtools.net

O que está ativo agora (Gratuito + Pro)

  • 📊 DNS Benchmark — Resultados visuais, histórico, alimentado por este motor CLI
  • 🔔 Monitoramento de DNS — Alertas em tempo real quando seus registros mudam
  • 🆓 Camada gratuita — Comece imediatamente, sem necessidade de cartão de crédito
  • 💼 Pro por €14/mês — Retenção estendida e suporte prioritário

Previsto para Q2 2026

  • ⚡ HTTP Benchmark — Medir tempos de resposta de API e desempenho de CDN
  • 🔒 Monitor SSL — Alertas de expiração de certificados antes que problemas ocorram

Previsto para Q3 2026

  • 🌍 Testes multi-região — Teste de vários locais simultaneamente

→ Cadastre-se grátis em buildtools.net


🛣️ Roteiro

✅ Lançamento Atual (Edição CLI)

  • Benchmark, compare, monitore resolvedores de DNS
  • Suporte a DoH, DoT, DNSSEC (novo neste lançamento)
  • Exportar para CSV, Excel, PDF, JSON

✅ Painel Web (Ativo)

  • DNS Benchmark com histórico visual
  • Monitoramento de DNS com alertas em tempo real
  • Camada gratuita + Pro por €14/mês
  • buildtools.net

🔜 Previsto para Q2 2026

  • HTTP Benchmark
  • Monitor SSL

Q3 2026

  • Testes multi-região

🤝 Contribuindo

Adoramos contribuições! Veja como você pode ajudar:

Formas de Contribuir

  • 🐛 Reportar bugs - Abrir um issue
  • 💡 Sugerir funcionalidades - Iniciar uma discussão
  • 📝 Melhorar documentação - README, exemplos, tutoriais
  • 🔧 Enviar PRs - Correções de bugs, funcionalidades, testes
  • ⭐ Dar estrela no repositório - Ajude outros a descobrir a ferramenta
  • 📢 Divulgar - Tweet, blog, compartilhe

🛠 Desenvolvimento e Comandos do Makefile

Este projeto inclui um Makefile para simplificar instalação, testes e verificações de qualidade de código.```makefile .PHONY: install install-dev uninstall mypy black isort flake8 cov test clean cli-test

🔧 Install package (runtime only)

install: pip install .

🔧 Install package with dev extras (pytest, mypy, flake8, black, isort, etc.)

install-dev: pip install .[dev]

🔧 Uninstall package

uninstall: pip uninstall -y dns-benchmark-tool
dnspython pandas aiohttp click pyfiglet colorama Jinja2 weasyprint openpyxl pyyaml tqdm matplotlib
mypy black flake8 autopep8 pytest coverage isort

mypy: mypy .

isort: isort .

black: black .

flake8: flake8 src tests --ignore=E126,E501,E712,F405,F403,E266,W503 --max-line-length=88 --extend-ignore=E203

cov: coverage erase coverage run --source=src -m pytest -vv -s coverage html

test: mypy black isort flake8 cov

clean: rm -rf pycache .pytest_cache htmlcov .coverage coverage.xml
build dist *.egg-info .eggs benchmark_results cli-test:

Run only the CLI smoke tests marked with @pytest.mark.cli

pytest -vv -s -m cli tests/test_cli_commands.py

root@kitploit:~
### Uso comum

- **Instalar apenas o runtime**  ```bash
  make install
  • Instalar com dependências de desenvolvimento ```bash make install-dev
    root@kitploit:~
  • Executar verificações de tipo, linting, formatação e testes ```bash make test
    root@kitploit:~
  • Executar apenas testes de fumaça da CLI ```bash make cli-test
    root@kitploit:~
  • Limpar artefatos de construção/teste ```bash make clean
    root@kitploit:~

Diretrizes de Código

  • Siga o guia de estilo PEP 8
  • Adicione testes para novas funcionalidades
  • Atualize a documentação
  • Mantenha os PRs focados e atômicos

❓ FAQ

Por que o DNS do meu ISP não é o mais rápido?

O DNS do ISP local geralmente tem vantagens de cache, mas pode carecer de:

  • Rede anycast global (mais lenta para domínios distantes)
  • Validação DNSSEC
  • Recursos de privacidade (DoH/DoT)
  • Garantias de confiabilidade

Teste ambos e decida com base nas SUAS prioridades!

Com que frequência devo realizar benchmark de DNS?
  • Única vez: Ao escolher o provedor de DNS
  • Mensalmente: Para verificações de saúde da rede
  • Antes da migração: Ao trocar de provedor
  • Após problemas: Para solucionar problemas de desempenho
Posso testar meu próprio servidor DNS?

Sim! Basta adicioná-lo a um arquivo JSON de resolvedores personalizados:```json { "resolvers": [ {"name": "My DNS", "ip": "192.168.1.1"} ] }

root@kitploit:~
</details>

<details>
<summary><b>Qual a diferença entre a versão CLI e a versão hospedada?</b></summary>

**CLI (Gratuita para Sempre):**

- Execute testes A PARTIR da sua localização
- Salve resultados localmente
- Código aberto — mesmo motor que alimenta o painel

**Painel Web (Ao vivo em buildtools.net):**

- Resultados visuais de benchmark e histórico
- Monitoramento de DNS com alertas em tempo real
- Camada gratuita disponível, Pro por €14/mês
- Testes multirregião previstos para Q3 2026
</details>

<details>
<summary><b>Esta ferramenta é segura para uso em produção?</b></summary>

Sim! A ferramenta realiza apenas consultas DNS (operações de leitura). Ela NÃO:
- Modifica registros DNS
- Realiza ataques
- Envia dados para servidores externos (a menos que você ative recursos hospedados)

Todos os testes são consultas DNS padrão que qualquer resolvedor lida diariamente.

</details>

<details>
<summary><b>Por que os resultados variam entre execuções?</b></summary>

O desempenho do DNS varia devido a:
- Condições de rede
- Cache DNS (resolvedor e intermediário)
- Carga do servidor
- Alterações no roteamento geográfico

Execute múltiplas iterações (`--iterations 5`) para resultados mais consistentes.

</details>

---

## 🔗 Links e Suporte

### Oficial

- **Website**: [buildtools.net](https://buildtools.net)
- **PyPI**: [dns-benchmark-tool](https://pypi.org/project/dns-benchmark-tool/)
- **GitHub**: [frankovo/dns-benchmark-tool](https://github.com/frankovo/dns-benchmark-tool)

### Comunidade

- **Discussões**: [GitHub Discussions](https://github.com/frankovo/dns-benchmark-tool/discussions)
- **Issues**: [Relatórios de Erros](https://github.com/frankovo/dns-benchmark-tool/issues)

### Estatísticas

- **Downloads**: 1.400+ (esta semana)
- **Usuários Ativos**: 600+

---

## Licença

Este projeto está licenciado sob a Licença MIT — veja o arquivo [LICENSE](https://github.com/net-benchmark/dns-benchmark-tool/blob/HEAD/LICENSE) para detalhes.

---

<div align="center">

**Feito com ❤️ por [@frankovo](https://github.com/frankovo)**

Parte do [BuildTools](https://buildtools.net) - Suíte de Performance de Rede

[⭐ Estrela no GitHub](https://github.com/frankovo/dns-benchmark-tool) • [📦 Instale do PyPI](https://pypi.org/project/dns-benchmark-tool/)

</div>
Baixar ferramenta
  • Advanced Usage
  • Inline input support for resolvers and domains
    • New capabilities
    • Backward compatibility
    • Usage Examples
      • Before (Only files worked)
      • After (Both work)
      • Named resolvers
      • Mixed input
      • Single
  • 🔧 Utilities
    • Risolver management
    • Domain management
    • Category overview
    • Configuration management
  • Complete usage guide
    • Quick performance test
      • Network administrator
      • ISP & network operator
      • Developer & DevOps
      • Security auditor
      • Enterprise IT
  • 🔍 README Adjustments for Final Patch
    • New CLI Options
  • ⚡ CLI Commands
    • 🚀 Top
    • 📊 Compare
    • 🔄 Monitoring
    • 🌟 Command Showcase
  • 📊 Analysis Enhancements
  • ⚡ Best Practices
  • ⚙️ Configuration Files
    • Resolvers JSON format
    • Domains text file format
  • Output formats
    • CSV outputs
    • Excel report
    • PDF report
    • 📄 Optional PDF Export
      • Install with PDF support
      • Usage
    • ⚠️ WeasyPrint Setup (for PDF export)
      • 🛠 Linux (Debian/Ubuntu)
      • 🛠 macOS (Homebrew)
      • 🛠 Windows
      • ✅ Verify Installation
    • JSON export
    • Generate Sample Config
  • Performance optimization
  • Troubleshooting
    • Debug mode
  • Automation & CI
    • Cron jobs
    • GitHub Actions example
  • Screenshots
    • 1. CLI Benchmark Run
    • 2. Excel Report Output
    • 3. PDF Executive Summary
    • 4. PDF Charts
    • 5. Excel Charts
    • 6. Real Time Monitoring
  • Getting help
  • Release workflow
  • 🌐 BuildTools Web Dashboard — Now Live
    • What's live now (Free + Pro)
    • Coming Q2 2026
    • Coming Q3 2026
  • 🛣️ Roadmap
    • ✅ Current Release (CLI Edition)
    • ✅ Web Dashboard (Live)
    • 🔜 Coming Q2 2026
      • Q3 2026
  • 🤝 Contributing
    • Ways to Contribute
    • 🛠 Development & Makefile Commands
    • Common usage
    • Code Guidelines
  • ❓ FAQ
  • 🔗 Links & Support
    • Official
    • Community
    • Stats
  • License
  • ComandoO que fazExemplo rápido
    benchmarkBenchmark DNS completo com exportaçõesdns-benchmark benchmark --use-defaults
    topClassifique todos os resolvedores por velocidadedns-benchmark top --limit 5
    compareComparação lado a lado de resolvedoresdns-benchmark compare Cloudflare Google Quad9
    monitoringMonitoramento contínuo com alertasdns-benchmark monitoring --use-defaults
    OpçãoDescriçãoExemplo
    --iterations, -iExecuta o loop completo de benchmark N vezesdns-benchmark benchmark --use-defaults -i 3
    --use-cachePermite que resultados em cache sejam reutilizados entre iteraçõesdns-benchmark benchmark --use-defaults -i 3 --use-cache
    --warmupExecuta um aquecimento completo (todos os resolvedores × domínios × tipos de registro)dns-benchmark benchmark --use-defaults --warmup
    --warmup-fastExecuta um aquecimento leve (uma sondagem por resolvedor)dns-benchmark benchmark --use-defaults --warmup-fast
    --include-chartsInsere gráficos e diagramas em relatórios PDF/Excel para análise visual de desempenhodns-benchmark benchmark --use-defaults --formats pdf,excel --include-charts
    ModoFlags RecomendadasPropósito
    Execução Rápida--iterations 1 --timeout 1 --retries 0 --warmup-fastFeedback rápido, poucas repetições, aquecimento leve. Bom para verificações rápidas.
    Execução Completa--iterations 3 --use-cache --warmup --timeout 5 --retries 2Múltiplas passagens, cache ativado, aquecimento completo. Melhor para benchmarking detalhado.
    Modo de Depuração--iterations 1 --timeout 10 --retries 0 --quietTempo limite longo, sem repetições, saída mínima. Útil para diagnosticar problemas de resolvedor.
    Execução Balanceada--iterations 2 --use-cache --warmup-fast --timeout 2 --retries 1Um meio-termo: velocidade moderada, algumas repetições, cache ativado, aquecimento rápido.
  • Abrir PR e mesclar na main.

  • Então criar tag:

    root@kitploit:~
    make release-tag VERSION=$NEXT_VERSION
    
  • Notas

    • Commits assinados: git commit -S ...
    • Tags assinadas: git tag -s vX.Y.Z -m "Release vX.Y.Z"
    • Fontes de versão: pyproject.toml e src/dns_benchmark/__init__.py