← Todas las Herramientas

resolvalid

Un validador de servidores DNS rápido y concurrente escrito en Go.
GitHub ★ 16
go install github.com/mmarting/resolvalid@latest
resolvalid flow diagram

resolvalid 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

FlagDescripción
-o, --outputOutput file for valid DNS servers (required)
-f, --fileFile containing the list of DNS servers (optional)
-u, --urlURL containing the file of DNS servers (default: public-dns.info)
-td, --test-domainDomain used to test DNS servers (default: random)
-t, --threadsNumber of concurrent threads (default: 20)
-to, --timeoutTimeout for DNS queries (default: 2s)
-ml, --max-latencyMaximum acceptable response time (disabled by default)
-r, --retriesRetries for failed DNS queries (default: 0)
-q, --quietSuppress output to the screen
-v, --versionDisplay version information
-h, --helpDisplay help information