resolvalid
Un validador de servidores DNS rápido y concurrente escrito en Go.
go install github.com/mmarting/resolvalid@latestresolvalid toma una lista de servidores DNS (desde un archivo local, una URL, stdin o una lista pública integrada) y testea cada uno de forma concurrente para verificar que resuelve consultas correctamente. Establece las IPs esperadas usando servidores DNS públicos de confianza (Cloudflare, Google), y marca como válidos solo los que devuelven resultados coincidentes. El resultado es un archivo limpio con solo resolvers DNS válidos y funcionales. Creado para acelerar pipelines de automatización de recon donde los resolvers obsoletos hacen perder tiempo.
Cómo funciona
Referencia
Prueba el dominio contra servidores DNS públicos de confianza (1.1.1.1, 8.8.8.8, 8.8.4.4) para establecer las IPs esperadas
Test
Envía una consulta DNS a cada servidor usando un dominio de prueba aleatorio o personalizado mediante goroutines concurrentes
Validación
Marca los servidores como válidos solo si devuelven una de las IPs esperadas dentro del timeout y límites de latencia
Salida
Escribe solo los servidores DNS válidos y funcionales en el archivo de salida, uno por línea
Características
- Valida servidores DNS desde archivo local, URL, stdin o lista pública integrada
- Validación concurrente basada en goroutines para mayor velocidad
- Verifica resultados contra DNS de confianza (Cloudflare, Google) para detectar respuestas envenenadas o censuradas
- Timeout configurable y filtrado por latencia máxima
- Mecanismo de reintentos para consultas DNS fallidas
- Soporte para dominio de prueba personalizado
- Modo silencioso para integración en pipelines
- Archivo de salida limpio con solo resolvers funcionales
Ejemplos de Uso
resolvalid -o valid_servers.txt
Usar lista pública integrada (sin archivo de entrada)
resolvalid -f dns_servers.txt -o valid_servers.txt
Validar un archivo local de servidores DNS
resolvalid -u https://example.com/dns_list.txt -o valid_servers.txt -to 5s
Validar desde una URL con timeout personalizado
cat dns_servers.txt | resolvalid -o valid_servers.txt
Entrada por stdin mediante pipe
resolvalid -f dns_servers.txt -o valid_servers.txt -ml 500ms -r 2
Filtrado por latencia con reintentos
resolvalid -f dns_servers.txt -o valid_servers.txt -td mytestdomain.com -t 50 -q
Modo silencioso, dominio de prueba personalizado, 50 hilos
Opciones
| Flag | Descripción |
|---|---|
| -o, --output | Output file for valid DNS servers (required) |
| -f, --file | File containing the list of DNS servers (optional) |
| -u, --url | URL containing the file of DNS servers (default: public-dns.info) |
| -td, --test-domain | Domain used to test DNS servers (default: random) |
| -t, --threads | Number of concurrent threads (default: 20) |
| -to, --timeout | Timeout for DNS queries (default: 2s) |
| -ml, --max-latency | Maximum acceptable response time (disabled by default) |
| -r, --retries | Retries for failed DNS queries (default: 0) |
| -q, --quiet | Suppress output to the screen |
| -v, --version | Display version information |
| -h, --help | Display help information |