Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dns-benchmark-tool — Pruebas de rendimiento DNS rápidas y completas con validación DNSSEC, soporte DoH/DoT y funciones empresariales. | Kitploit
Herramientas/GitHubGitHub/net-benchmark/dns-benchmark-tool
Herramientas de Cifrado/DescifradoMapeo de RedesSeguridad de RedesPrivacidadAnálisis de DNSArchived
GitHubnet-benchmark/dns-benchmark-tool

dns-benchmark-tool

Pruebas de rendimiento DNS rápidas y completas con validación DNSSEC, soporte DoH/DoT y funciones empresariales.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
Sitio web
363126hace 4 mesesRevisado por Kitploit

⚠️ este proyecto se ha trasladado y ya no se mantiene. instala el sucesor: pip install net-benchmark repositorio: https://github.com/net-benchmark/net-benchmark todos los comandos y opciones existentes siguen siendo completamente compatibles.


DNS Benchmark Tool

Parte de BuildTools - Network Performance Suite

Pruebas de rendimiento DNS rápidas y completas con validación DNSSEC, soporte DoH/DoT y características empresariales```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
> 🎉 **¡Más de 1,400 descargas · más de 600 usuarios activos!**
> 🚀 **¡El panel web ya está disponible!** [Prueba BuildTools gratis →](https://buildtools.net)

---

**Seguimiento en tiempo real**

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

**Seguimiento en tiempo real - Interfaz web**
[![Real Time Tracking - Web UI](https://assets.kitploit.com/production/public/readmes/9801/02b1a1ab9d814fa4de537464def46493c36f96a5d0787a13c2d14eb07dfc2d11.gif)](https://github.com/frankovo/dns-benchmark-tool)
*Supervisa consultas DNS en vivo con alertas por correo electrónico*

</div>

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

Hemos añadido **tres potentes comandos de CLI** y soporte completo para **DoH, DoT y DNSSEC**:

- 🚀 **top** — clasificación rápida de resolutores por velocidad y confiabilidad
- 📊 **compare** — comparación lado a lado con estadísticas detalladas y opciones de exportación
- 🔄 **monitoring** — seguimiento continuo del rendimiento con alertas y registro
- 🔒 **DoH / DoT / DNSSEC** — evaluación comparativa de DNS cifrado con datos reales de compensación de latencia```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

📈 Destacados de la Comunidad

  • ⭐ Estrellas: Creció de 7 a más de 110 después de publicar en Hacker News
  • 📦 Descargas: Se recuperaron a más de 200/día después de estancarse inicialmente
  • 🐘 Mastodon: También se compartió allí, pero el verdadero aumento vino de HN
  • 💬 Comentarios: La retroalimentación constructiva de la comunidad de HN moldeó directamente los parches v0.3.0 → v0.3.1
  • 🚀 Conclusión: La visibilidad en Hacker News fue el catalizador para la adopción

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

Índice de Contenidos

  • Herramienta de Benchmarking DNS
    • Parte de BuildTools - Suite de Rendimiento de Red
    • 🎉 Novedades en
    • 📈 Destacados de la Comunidad
    • Índice de Contenidos
    • 🎯 ¿Por qué esta herramienta?
      • El Problema
      • La Solución
      • Perfecto Para
    • Inicio Rápido
      • Instalación
      • Ejecuta Tu Primer Benchmark
      • Ver Resultados
    • ⚡ Comandos de un Vistazo
    • ✨ Características Clave
      • 🚀 Rendimiento
      • 🔒 Seguridad y Privacidad
      • 📊 Análisis y Exportación
      • 🏢 Funcionalidades Empresariales
      • 🌐 Multiplataforma
    • 🔒 Seguridad y DNS Cifrado
    • 🔧 Capacidades Avanzadas
    • 💼 Casos de Uso
      • 🔧 Para Desarrolladores: Optimizar el Rendimiento de API
      • 🛡️ Para DevOps/SRE: Validar Antes de Migrar
      • 🏠 Para Autogestores: Demostrar el Rendimiento de Pi-hole
      • 📊 Para Administradores de Red: Comprobaciones de Salud Automatizadas
      • 🔐 Para Defensores de la Privacidad: Probar DNS Cifrado
    • 📦 Instalación y Configuración
      • Requisitos
      • Instalar desde PyPI
      • Instalar desde Fuente
      • Verificar Instalación
      • Primera Ejecución

🎯 ¿Por qué esta herramienta?

La resolución de DNS suele ser el cuello de botella oculto en el rendimiento de la red. Un resolutor lento puede añadir cientos de milisegundos a cada solicitud.

El Problema

  • ⏱️ Cuello de botella oculto: DNS puede añadir 300ms+ a cada solicitud
  • 🤷 Rendimiento desconocido: La mayoría de desarrolladores nunca prueban su DNS
  • 🌍 La ubicación importa: El resolutor "más rápido" depende de DÓNDE estás
  • 🔒 La seguridad varía: El soporte para DNSSEC, DoH, DoT difiere enormemente

La Solución

dns-benchmark-tool te ayuda a:

  • 🔍 Encontrar el resolutor DNS más rápido para TU ubicación
  • 📊 Obtener datos reales - P95, P99, jitter, puntuaciones de consistencia
  • 🛡️ Validar seguridad - Verificación DNSSEC integrada
  • 🚀 Probar a escala - Más de 100 consultas concurrentes en segundos

Perfecto Para

  • ✅ Desarrolladores optimizando el rendimiento de API
  • ✅ DevOps/SRE validando SLA de resolutores
  • ✅ Autogestores comparando Pi-hole/Unbound vs DNS público
  • ✅ Administradores de red realizando comprobaciones de cumplimiento

Inicio Rápido

Instalación```bash

pip install dns-benchmark-tool

root@kitploit:~
### Ejecute su primer benchmark```bash
# Test default resolvers against popular domains
dns-benchmark benchmark --use-defaults --formats csv,excel

Ver Resultados

Los resultados se guardan automáticamente en ./benchmark_results/ con:

  • CSV resumen con estadísticas
  • Datos detallados sin procesar
  • Informes opcionales en PDF/Excel

¡Eso es todo! Acabas de evaluar 5 resolutores DNS contra 10 dominios.


⚡ Comandos de un vistazo

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:~
---

## ✨ Características Principales

### 🚀 Rendimiento

- **Consultas asíncronas** - Prueba más de 100 resolutores simultáneamente
- **Multi-iteración** - Ejecuta benchmarks varias veces para precisión
- **Análisis estadístico** - Media, mediana, P95, P99, jitter, consistencia
- **Control de caché** - Prueba con/sin caché DNS

### 🔒 Seguridad y Privacidad

- **Validación DNSSEC** - Verifica cadenas de confianza criptográficas
- **DNS-over-HTTPS (DoH)** - Benchmarking de DNS cifrado
- **DNS-over-TLS (DoT)** - Pruebas de transporte seguro
- **DNS-over-QUIC (DoQ)** - Soporte experimental de QUIC

### 📊 Análisis y Exportación

- **Múltiples formatos** - CSV, Excel, PDF, JSON
- **Informes visuales** - Gráficos y diagramas
- **Estadísticas por dominio** - Análisis de rendimiento por dominio
- **Desglose de errores** - Identifica resolutores problemáticos

### 🏢 Características Empresariales

- **Autenticación TSIG** - Consultas empresariales seguras
- **Transferencias de zona** - Validación AXFR/IXFR
- **Actualizaciones dinámicas** - Prueba operaciones de escritura DNS
- **Informes de cumplimiento** - Documentación lista para auditoría

### 🌐 Multiplataforma

- **Linux, macOS, Windows** - Funciona en todas partes
- **Amigable con CI/CD** - Salida JSON, códigos de salida
- **Soporte IDNA** - Nombres de dominio internacionalizados
- **Detección automática** - Descubrimiento DNS de Windows WMI

---

## 🔒 Seguridad y DNS Cifrado

Tres protocolos son totalmente compatibles — cada uno añade privacidad a costa de latencia.

| Protocolo | Indicador | Sobrecarga típica | Cuándo usarlo |
|---|---|---|---|
| UDP simple | *(predeterminado)* | línea base | Benchmarking de latencia |
| DNS-over-HTTPS | `--doh` | +50–200ms | Privacidad, evitar firewall |
| DNS-over-TLS | `--dot` | +200–500ms en frío, ~50ms en caliente | Transporte cifrado |
| DNSSEC | `--dnssec-validate` | +30–100ms | Validar integridad del resolutor |

> ⚠️ **Compensaciones**
> - DoH y DoT añaden sobrecarga de handshake TLS en la primera consulta por resolutor. Usa `--warmup-fast` para absorber esto antes de medir.
> - `--dnssec-validate` solicita registros RRSIG y exige el marcador AD. Solo ~33% de los dominios comunes están firmados con DNSSEC — espera resultados `DNSSEC_FAILED` en dominios no firmados. Los números de latencia con y sin este indicador **no son directamente comparables**.
> - Los resultados en móvil/hotspot mostrarán una varianza 2–5 veces mayor que en ethernet cableado. Usa `--iterations 5` y compara la mediana de latencia, no el promedio.```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

Ejemplos de fallos tempranos — estos fallan inmediatamente antes de que se ejecute cualquier consulta:```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 Avanzadas

---
> ⚠️ Estas banderas están **documentadas para visibilidad** pero aún no implementadas.  
> Representan próximas características avanzadas.

- `--zone-transfer` → Pruebas de transferencia de zona AXFR/IXFR *(próximamente)*
- `--tsig` → Consultas autenticadas por TSIG *(próximamente)*
- `--idna` → Soporte de nombres de dominio internacionalizados *(próximamente)*

---

<details>
<summary><b>🚀 Características de Rendimiento y Concurrencia</b></summary>

<br>

- **Async I/O con dnspython** - Pruebe más de 100 resolvedores simultáneamente
- **Soporte del framework Trio** - Operaciones asíncronas de alta concurrencia
- **Concurrencia configurable** - Controlar consultas concurrentes máximas
- **Lógica de reintentos** - Retroceso exponencial para consultas fallidas
- **Simulación de caché** - Probar con/sin almacenamiento en caché de DNS
- **Puntos de referencia multi-iteración** - Ejecutar pruebas múltiples veces para precisión
- **Fase de calentamiento** - Precalentar cachés DNS antes de probar
- **Análisis estadístico** - Media, mediana, P95, P99, jitter, puntuaciones de consistencia

**Ejemplo:**```bash
dns-benchmark benchmark \
  --max-concurrent 200 \
  --iterations 5 \
  --timeout 3.0 \
  --warmup
🔒 Funciones de Seguridad y Privacidad
  • Validación DNSSEC - Verificar cadenas de confianza criptográficas
  • DNS sobre HTTPS (DoH) - Evaluación comparativa de DNS cifrado mediante HTTPS
  • DNS sobre TLS (DoT) - Pruebas de capa de transporte segura
  • DNS sobre QUIC (DoQ) - Soporte experimental del protocolo QUIC
  • Autenticación TSIG - Firmas de transacción para DNS empresarial
  • Soporte EDNS0 - Funciones DNS extendidas y cargas útiles más grandes

Ejemplo:```bash

Test DoH resolvers

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

root@kitploit:~
</details>

<details>
<summary><b>🏢 Funciones empresariales y de migración</b></summary>

<br>

- **Transferencias de zona (AXFR/IXFR)** - Validación de transferencias de zona completas e incrementales
- **Actualizaciones de DNS dinámico** - Prueba de operaciones de escritura y actualizaciones de DNS
- **Soporte EDNS0** - Opciones DNS extendidas, subred de cliente, cargas útiles más grandes
- **Integración con WMI de Windows** - Detección automática de configuraciones DNS activas del sistema
- **Informes de cumplimiento** - Generar informes PDF/Excel listos para auditoría
- **Validación de SLA** - Seguimiento de tiempo de actividad y umbrales de rendimiento

**Ejemplo:**```bash
# Validate DNS migration
dns-benchmark benchmark \
  --resolvers old-provider.json,new-provider.json \
  --zone-transfer \ # coming soon
  --output migration-report/ \
  --formats pdf,excel
📊 Funciones de Análisis e Informes
  • Estadísticas por dominio - Analizar el rendimiento por dominio
  • Estadísticas por tipo de registro - Comparar A, AAAA, MX, TXT, etc.
  • Desglose de errores - Categorizar y contar tipos de error
  • Matrices de comparación - Comparaciones de resolvedores lado a lado
  • Análisis de tendencias - Rendimiento a lo largo del tiempo (con múltiples ejecuciones)
  • Mejor según criterios - Encontrar el mejor resolvedor por latencia/fiabilidad/consistencia

Ejemplo:```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>🌐 Internacionalización y compatibilidad</b></summary>

<br>

- **Soporte IDNA** - Nombres de dominio internacionalizados (IDN)
- **Múltiples tipos de registro** - A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA
- **Multiplataforma** - Linux, macOS, Windows (soporte nativo)
- **Integración CI/CD** - salida JSON, códigos de salida adecuados, modo silencioso
- **Resolvedores personalizados** - Cargar desde JSON, probar tus propios servidores DNS
- **Dominios personalizados** - Probar contra tu lista de dominios específica

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

💡 La mayoría de los usuarios solo necesita funciones básicas. Estas capacidades avanzadas están disponibles cuando las necesites.


💼 Casos de Uso

🔧 Para Desarrolladores: Optimice el Rendimiento de la 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:** Reduzca la latencia de la API en 100-300 ms

---

### 🛡️ Para DevOps/SRE: Validar antes de la migración```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 el rendimiento y la seguridad antes de la migración


🏠 Para Autogestores: Demuestre el rendimiento de 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:** Prueba basada en datos de que tu DNS auto-alojado es más rápido (¡o no!)

---

### 📊 Para administradores de redes: Comprobaciones de salud automatizadas```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: Informes automatizados de cumplimiento y SLA


🔐 Para defensores de la privacidad: Prueba el DNS cifrado```bash

Benchmark privacy-focused DoH/DoT resolvers

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

root@kitploit:~
**Resultado:** Encuentre el DNS cifrado más rápido sin sacrificar la privacidad

---

## 📦 Instalación y Configuración

### Requisitos

- Python 3.9+
- administrador de paquetes pip

### Instalar desde PyPI```bash
pip install dns-benchmark-tool

Instalar desde el código fuente```bash

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

root@kitploit:~
### Verificar Instalación```bash
dns-benchmark --version
dns-benchmark --help

Primera ejecución```bash

Test with defaults (recommended for first time)

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

root@kitploit:~
---

## 📖 Ejemplos 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 Avanzado```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 nuevos comandos:** Los resolutores sin consultas exitosas son excluidos del ranking y mostrarán `Avg Latency: N/A`.

---

## Soporte de entrada en línea para resolutores y dominios

Esta mejora introduce soporte completo para valores en línea separados por comas para las
banderas `--resolvers` y `--domains`, solucionando el problema [#39](https://github.com/frankovo/dns-benchmark-tool/issues/39) y mejorando la usabilidad de la CLI sin romper ningún flujo de trabajo existente.

### Nuevas capacidades

1. **resolutores en línea**: `--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"`
2. **dominios en línea**: `--domains "google.com,github.com"`
3. **valores únicos**: `--resolvers "1.1.1.1"` o `--domains "google.com"`
4. **resolutores nombrados**: `--resolvers "cloudflare,google,quad9"`
5. **entrada mixta**: `--resolvers "1.1.1.1,cloudflare,8.8.8.8"`

### Compatibilidad hacia atrás

- todas las configuraciones existentes basadas en archivos continúan funcionando
- sin cambios que rompan la CLI
- la detección de archivos tiene prioridad sobre el análisis en línea

### Ejemplos de uso

#### Antes (Solo los archivos funcionaban)```bash
dns-benchmark benchmark \
    --resolvers data/resolvers.json \
    --domains data/domains.txt

Después (Ambos funcionan)```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 nombrados```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 mixta```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

🔧 Utilidades

Gestión de 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:~
### Gestión de dominios```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

Resumen de la categoría```bash

View all available categories

dns-benchmark list-categories

root@kitploit:~
### Gestión de configuración```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

Guía de uso completa

Prueba rápida de rendimiento```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:~
Banderas de análisis de complementos:```bash
# Include domain and record-type analytics and error breakdown
dns-benchmark benchmark --use-defaults \
  --domain-stats --record-type-stats --error-breakdown

Exportación JSON:```bash

Export a machine-readable bundle

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

root@kitploit:~
#### Administrador de red```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 y operador de red```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:~
#### Desarrollador y 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 seguridad```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 del README para el Parche Final

Nuevas Opciones de CLI


⚡ Comandos de CLI

La Herramienta de Benchmark DNS ahora incluye tres comandos especializados para diferentes flujos de trabajo:

🚀 Top```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

Evalúe resolutores uno al lado del otro con estadísticas detalladas.```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

🔄 Monitoreo

Supervise continuamente el rendimiento del resolvedor con 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:~
---

### 🌟 Demostración de comandos

| Comando      | Propósito | Caso de uso típico | Opciones clave | Salida |
|--------------|---------|------------------|-------------|--------|
| **top**      | Clasificación rápida de resolvedores por velocidad y confiabilidad | Verificación rápida para saber qué resolvedor es el mejor en este momento | `--domains`, `--record-types`, `--output` | Lista ordenada de resolvedores con latencia y tasa de éxito |
| **compare**  | Comparación lado a lado de resolvedores específicos | Evaluación comparativa detallada entre resolvedores/dominios seleccionados | `--domains`, `--record-types`, `--iterations`, `--output`, `--show-details` | Tabla de resolvedores con latencia, tasa de éxito y desglose por dominio |
| **monitoring** | Monitoreo continuo con alertas | Seguimiento en tiempo real del rendimiento del resolvedor a lo largo del tiempo | `--interval`, `--duration`, `--alert-latency`, `--alert-failure-rate`, `--output`, `--use-defaults` | Indicadores de estado en vivo, alertas, archivo de registro opcional |

---

## 📊 Mejoras de análisis

- **Recuento de iteraciones**: se muestra cuando se ejecuta más de una iteración.  
- **Aciertos de caché**: muestra cuántas consultas se sirvieron desde la caché (cuando `--use-cache` está habilitado).  
- **Seguimiento de fallos**: los resolvedores con errores repetidos se cuentan y se pueden inspeccionar con `get_failed_resolvers()`.  
- **Estadísticas de caché**: disponibles a través de `get_cache_stats()`, muestra el número de entradas en caché y si la caché está habilitada.  
- **Resultados de calentamiento**: las consultas de calentamiento se marcan con `iteration=0` en los datos sin procesar, lo que facilita su filtrado en el análisis.  

Ejemplo de salida resumen:```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%)

⚡ Prácticas recomendadas

⚙️ Archivos de configuración

Formato JSON de 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 de archivo de texto de dominios```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 salida

Salidas CSV

  • Datos sin procesar: resultados de consultas individuales con marcas de tiempo y metadatos
  • Estadísticas de resumen: métricas agregadas por resólver
  • Estadísticas de dominio: métricas por dominio (cuando --domain-stats)
  • Estadísticas de tipo de registro: métricas por tipo de registro (cuando --record-type-stats)
  • Desglose de errores: conteos por tipo de error (cuando --error-breakdown)

Informe Excel

  • Hoja de datos sin procesar: todos los resultados de consultas con formato
  • Resumen del resólver: estadísticas completas con formato condicional
  • Estadísticas de dominio: rendimiento por dominio (opcional)
  • Estadísticas de tipo de registro: rendimiento por tipo de registro (opcional)
  • Desglose de errores: conteos de errores agregados (opcional)
  • Análisis de rendimiento: gráficos y análisis comparativo

Informe PDF

  • Resumen ejecutivo: hallazgos clave y recomendaciones
  • Gráficos de rendimiento: comparación de latencia; gráfico opcional de tasa de éxito
  • Clasificación de resólvers: ordenados por latencia promedio
  • Análisis detallado: inmersión técnica con percentiles

📄 Exportación PDF opcional

Por defecto, la herramienta admite exportaciones en CSV y Excel.
La exportación a PDF requiere la dependencia adicional weasyprint, que no se instala automáticamente para evitar problemas de ejecución en algunas plataformas.

Instalar con soporte PDF```bash

pip install dns-benchmark-tool[pdf]

root@kitploit:~
#### Usage

Una vez instalado, puede solicitar la salida PDF a través de la CLI:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

Si weasyprint no está instalado y solicitas salida PDF, la CLI mostrará:```bash [-] Error during benchmark: PDF export requires 'weasyprint'. Install with: pip install dns-benchmark-tool[pdf]

root@kitploit:~
---

### ⚠️ Configuración de WeasyPrint (para exportación a PDF)

La herramienta DNS Benchmark Tool utiliza **WeasyPrint** para generar informes PDF.  
Si deseas exportar a PDF, necesitas bibliotecas del sistema adicionales además del paquete de 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

Instala las librerías GTK+ usando uno de estos métodos:

- **MSYS2**: [Descarga MSYS2](https://www.msys2.org/), luego ejecuta:  ```bash
  pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
  • Instalador de GTK+ de 64 bits: Descargar GTK+ Runtime y ejecute el instalador.

Reinicie su terminal después de la instalación.


✅ Verificar la instalación

Después de instalar las bibliotecas del sistema, instale el extra de Python:```bash pip install dns-benchmark-tool[pdf]

root@kitploit:~
Luego ejecuta:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

JSON export

  • Paquete legible por máquina que incluye:
    • Estadísticas generales
    • Estadísticas del resolvedor
    • Resultados de consulta sin procesar
    • Estadísticas de dominio
    • Estadísticas de tipo de registro
    • Desglose de errores

Generar configuración de muestra```bash

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

root@kitploit:~
---

## Optimización del rendimiento```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

Solución 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 depuración```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

Automatización y CI

Cron jobs```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:~
### Ejemplo de GitHub Actions```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 pantalla

Coloca las imágenes en 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. Ejecución de Benchmark CLI

Ejecución de Benchmark CLI

2. Salida del Informe Excel

Salida del Informe Excel

3. Resumen Ejecutivo PDF

Resumen Ejecutivo PDF

4. Gráficos PDF

Gráficos PDF

5. Gráficos Excel

Gráficos Excel

6. Monitoreo en Tiempo Real

Monitoreo en Tiempo Real


Obteniendo ayuda```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:~
Escenarios comunes:```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

Flujo de trabajo de lanzamiento

  • Requisitos previos

    • Clave GPG configurada: ejecuta make gpg-check para verificar.
    • Protección de rama: main requiere commits firmados y que CI pase.
    • Publicación CI: se activa con etiquetas firmadas que coincidan con vX.Y.Z.
  • Preparar lanzamiento (firmado)

    • Incremento de parche/menor/principal:

      root@kitploit:~
      make release-patch      # or: make release-minor / make release-major
      
      • Actualiza versiones.
      • Crea o reutiliza release/X.Y.Z.
      • Realiza un commit firmado y sube la rama.
    • Abrir PR: desde release/X.Y.Z hacia main, luego fusiona una vez que CI pase.

  • Etiquetar y publicar

    • Crear etiqueta firmada y subir:

      root@kitploit:~
      make release-tag VERSION=X.Y.Z
      
      • Etiqueta main con vX.Y.Z (firmada).
      • CI publica en PyPI.
  • Alternativa manual

    • Crear rama y commit firmado:

      root@kitploit:~

🌐 Panel web de BuildTools — Ya disponible

La CLI sigue siendo gratuita para siempre. El panel web ya está disponible en buildtools.net

Lo que está disponible ahora (Gratuito + Pro)

  • 📊 Benchmark de DNS — Resultados visuales, historial, impulsado por este motor CLI
  • 🔔 Monitoreo de DNS — Alertas en tiempo real cuando tus registros cambian
  • 🆓 Nivel gratuito — Comienza de inmediato, sin necesidad de tarjeta de crédito
  • 💼 Pro por €14/mes — Retención extendida y soporte prioritario

Próximamente en el segundo trimestre de 2026

  • ⚡ Benchmark HTTP — Mide tiempos de respuesta de API y rendimiento de CDN
  • 🔒 Monitor SSL — Alertas de vencimiento de certificados antes de que ocurran problemas

Próximamente en el tercer trimestre de 2026

  • 🌍 Pruebas multirregión — Prueba desde múltiples ubicaciones simultáneamente

→ Regístrate gratis en buildtools.net


🛣️ Hoja de ruta

✅ Versión actual (Edición CLI)

  • Evalúa, compara y monitorea resolutores DNS
  • Soporte para DoH, DoT, DNSSEC (nuevo en esta versión)
  • Exportar a CSV, Excel, PDF, JSON

✅ Panel web (En vivo)

  • Benchmark de DNS con historial visual
  • Monitoreo de DNS con alertas en tiempo real
  • Nivel gratuito + Pro por €14/mes
  • buildtools.net

🔜 Próximamente en el segundo trimestre de 2026

  • Benchmark HTTP
  • Monitor SSL

Tercer trimestre de 2026

  • Pruebas multirregión

🤝 Contribuciones

¡Nos encantan las contribuciones! Así es como puedes ayudar:

Formas de contribuir

  • 🐛 Reportar errores - Abrir un issue
  • 💡 Sugerir funciones - Iniciar una discusión
  • 📝 Mejorar la documentación - README, ejemplos, tutoriales
  • 🔧 Enviar PRs - Correcciones de errores, funciones, pruebas
  • ⭐ Dar estrella al repositorio - Ayuda a otros a descubrir la herramienta
  • 📢 Corre la voz - Twittea, bloguea, comparte

🛠 Desarrollo y comandos del Makefile

Este proyecto incluye un Makefile para simplificar la instalación, las pruebas y las comprobaciones de calidad 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 común

- **Instalar solo el entorno de ejecución**  ```bash
  make install
  • Instalar con dependencias de desarrollo ```bash make install-dev
    root@kitploit:~
  • Ejecutar verificaciones de tipos, linting, formateo y pruebas ```bash make test
    root@kitploit:~
  • Ejecutar solo smoke tests de CLI ```bash make cli-test
    root@kitploit:~
  • Limpiar artefactos de compilación/prueba ```bash make clean
    root@kitploit:~

Guías de Código

  • Sigue la guía de estilo PEP 8
  • Agrega pruebas para nuevas funciones
  • Actualiza la documentación
  • Mantén los PRs enfocados y atómicos

❓ Preguntas Frecuentes

¿Por qué el DNS de mi ISP no es el más rápido?

El DNS del ISP local a menudo tiene ventajas de almacenamiento en caché, pero puede carecer de:

  • Red anycast global (más lenta para dominios distantes)
  • Validación DNSSEC
  • Funciones de privacidad (DoH/DoT)
  • Garantías de confiabilidad

¡Prueba ambos y decide según TUS prioridades!

¿Con qué frecuencia debo realizar evaluaciones comparativas del DNS?
  • Una vez: Al elegir un proveedor de DNS
  • Mensual: Para controles de salud de la red
  • Antes de migrar: Al cambiar de proveedor
  • Después de problemas: Para solucionar problemas de rendimiento
¿Puedo probar mi propio servidor DNS?

¡Sí! Simplemente agrégalo a un archivo JSON de resolvers personalizado:```json { "resolvers": [ {"name": "My DNS", "ip": "192.168.1.1"} ] }

root@kitploit:~
</details>

<details>
<summary><b>¿Cuál es la diferencia entre la versión CLI y la versión alojada?</b></summary>

**CLI (Gratis para siempre):**

- Ejecuta pruebas desde TU ubicación
- Guarda los resultados localmente
- Código abierto: el mismo motor que impulsa el panel

**Panel web (en vivo en buildtools.net):**

- Resultados visuales de evaluación comparativa e historial
- Monitoreo de DNS con alertas en tiempo real
- Nivel gratuito disponible, Pro a 14 €/mes
- Pruebas multirregión próximamente en el tercer trimestre de 2026
</details>

<details>
<summary><b>¿Es seguro usar esta herramienta en producción?</b></summary>

¡Sí! La herramienta solo realiza consultas DNS (operaciones de lectura). NO:
- Modifica registros DNS
- Realiza ataques
- Envía datos a servidores externos (a menos que habilites funciones alojadas)

Todas las pruebas son consultas DNS estándar que cualquier resolución maneja a diario.

</details>

<details>
<summary><b>¿Por qué varían los resultados entre ejecuciones?</b></summary>

El rendimiento de DNS varía debido a:
- Condiciones de red
- Caché de DNS (resolución e intermedia)
- Carga del servidor
- Cambios de enrutamiento geográfico

Ejecuta múltiples iteraciones (`--iterations 5`) para obtener resultados más consistentes.

</details>

---

## 🔗 Enlaces y Soporte

### Oficial

- **Sitio web**: [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)

### Comunidad

- **Discusiones**: [GitHub Discussions](https://github.com/frankovo/dns-benchmark-tool/discussions)
- **Incidencias**: [Informes de errores](https://github.com/frankovo/dns-benchmark-tool/issues)

### Estadísticas

- **Descargas**: más de 1,400 (esta semana)
- **Usuarios activos**: más de 600

---

## Licencia

Este proyecto está licenciado bajo la Licencia MIT — consulte el archivo [LICENSE](https://github.com/net-benchmark/dns-benchmark-tool/blob/main/LICENSE) para obtener más detalles.

---

<div align="center">

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

Parte de [BuildTools](https://buildtools.net) - Suite de rendimiento de red

[⭐ Marcar en GitHub](https://github.com/frankovo/dns-benchmark-tool) • [📦 Instalar desde PyPI](https://pypi.org/project/dns-benchmark-tool/)

</div>
Descargar herramienta
  • 📖 Ejemplos de Uso
    • Uso Básico
    • Uso Avanzado
  • Soporte de entrada en línea para resolutores y dominios
    • Nuevas capacidades
    • Compatibilidad hacia atrás
    • Ejemplos de Uso
      • Antes (Solo funcionaban archivos)
      • Después (Ambos funcionan)
      • Resolutores con nombre
      • Entrada mixta
      • Individual
  • 🔧 Utilidades
    • Gestión de resolutores
    • Gestión de dominios
    • Resumen de categorías
    • Gestión de configuración
  • Guía de uso completa
    • Prueba de rendimiento rápida
      • Administrador de red
      • ISP y operador de red
      • Desarrollador y DevOps
      • Auditor de seguridad
      • TI empresarial
  • 🔍 Ajustes en el README para el Parche Final
    • Nuevas Opciones de CLI
  • ⚡ Comandos de CLI
    • 🚀 Principales
    • 📊 Comparar
    • 🔄 Monitoreo
    • 🌟 Demostración de Comandos
  • 📊 Mejoras de Análisis
  • ⚡ Mejores Prácticas
  • ⚙️ Archivos de Configuración
    • Formato JSON de resolutores
    • Formato de archivo de texto de dominios
  • Formatos de salida
    • Salidas CSV
    • Informe Excel
    • Informe PDF
    • 📄 Exportación a PDF Opcional
      • Instalar con soporte PDF
      • Uso
    • ⚠️ Configuración de WeasyPrint (para exportación PDF)
      • 🛠 Linux (Debian/Ubuntu)
      • 🛠 macOS (Homebrew)
      • 🛠 Windows
      • ✅ Verificar Instalación
    • Exportación JSON
    • Generar Configuración de Ejemplo
  • Optimización del rendimiento
  • Solución de problemas
    • Modo depuración
  • Automatización e Integración Continua
    • Tareas Cron
    • Ejemplo de GitHub Actions
  • Capturas de Pantalla
    • 1. Ejecución de Benchmark desde CLI
    • 2. Informe Excel de Salida
    • 3. Resumen Ejecutivo en PDF
    • 4. Gráficos en PDF
    • 5. Gráficos en Excel
    • 6. Monitoreo en Tiempo Real
  • Obtener Ayuda
  • Flujo de Trabajo de Lanzamiento
  • 🌐 Panel Web de BuildTools — Ya Disponible
    • Lo que está activo ahora (Gratuito + Pro)
    • Próximamente Q2 2026
    • Próximamente Q3 2026
  • 🛣️ Hoja de Ruta
    • ✅ Versión Actual (Edición CLI)
    • ✅ Panel Web (En Vivo)
    • 🔜 Próximamente Q2 2026
      • Q3 2026
  • 🤝 Contribuir
    • Formas de Contribuir
    • 🛠 Desarrollo y Comandos de Makefile
    • Uso común
    • Directrices de Código
  • ❓ Preguntas Frecuentes
  • 🔗 Enlaces y Soporte
    • Oficiales
    • Comunidad
    • Estadísticas
  • Licencia
  • ComandoQué haceEjemplo rápido
    benchmarkEvaluación DNS completa con exportacionesdns-benchmark benchmark --use-defaults
    topClasificar todos los resolutores por velocidaddns-benchmark top --limit 5
    compareComparación lado a lado de resolutoresdns-benchmark compare Cloudflare Google Quad9
    monitoringMonitoreo continuo con alertasdns-benchmark monitoring --use-defaults
    OpciónDescripciónEjemplo
    --iterations, -iEjecutar el bucle completo de benchmark N vecesdns-benchmark benchmark --use-defaults -i 3
    --use-cachePermitir que los resultados en caché se reutilicen entre iteracionesdns-benchmark benchmark --use-defaults -i 3 --use-cache
    --warmupEjecutar un calentamiento completo (todos los resolvedores × dominios × tipos de registro)dns-benchmark benchmark --use-defaults --warmup
    --warmup-fastEjecutar un calentamiento ligero (una sonda por resolvedor)dns-benchmark benchmark --use-defaults --warmup-fast
    --include-chartsInsertar gráficos en informes PDF/Excel para análisis visual de rendimientodns-benchmark benchmark --use-defaults --formats pdf,excel --include-charts
    ModoBanderas recomendadasPropósito
    Ejecución rápida--iterations 1 --timeout 1 --retries 0 --warmup-fastRetroalimentación rápida, reintentos mínimos, calentamiento ligero. Bueno para comprobaciones rápidas.
    Ejecución exhaustiva--iterations 3 --use-cache --warmup --timeout 5 --retries 2Múltiples pasadas, caché habilitada, calentamiento completo. Ideal para evaluaciones comparativas detalladas.
    Modo depuración--iterations 1 --timeout 10 --retries 0 --quietTiempo de espera largo, sin reintentos, salida mínima. Útil para diagnosticar problemas del resolvedor.
    Ejecución equilibrada--iterations 2 --use-cache --warmup-fast --timeout 2 --retries 1Un punto medio: velocidad moderada, algunos reintentos, caché habilitado, calentamiento rápido.
    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
  • Abrir PR y fusionar en main.

  • Luego etiquetar:

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

    • Commits firmados: git commit -S ...
    • Etiquetas firmadas: git tag -s vX.Y.Z -m "Release vX.Y.Z"
    • Fuentes de versión: pyproject.toml y src/dns_benchmark/__init__.py