doggo - Cliente DNS Moderno
doggo es un cliente DNS moderno para la línea de comandos — una alternativa más amigable y colorizada a dig con salida limpia y tabular o JSON. Además de consultas tradicionales UDP/TCP, habla los transportes encriptados modernos: DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), DNS-over-QUIC (DoQ) y DNSCrypt. Está escrito en Go, se distribuye como un único binario y es útil tanto para búsquedas rápidas como para diagnósticos DNS escritos.
Instalación
| Plataforma | Comando |
|---|
| Go install | go install github.com/mr-karan/doggo/cmd/doggo@latest |
| macOS (Homebrew) | brew install doggo |
| Arch Linux | sudo pacman -S doggo |
| Docker | docker run --rm ghcr.io/mr-karan/doggo doggo example.com |
| Binario | descargar de la página de GitHub Releases |
Consultas Básicas
| Comando | Descripción |
|---|
doggo example.com | Búsqueda de registro A por defecto |
doggo example.com MX | Consultar un tipo de registro específico |
doggo example.com A AAAA MX | Consultar varios tipos de registro a la vez |
doggo example.com @1.1.1.1 | Usar un resolvedor específico |
doggo --help | Lista completa de opciones |
doggo --version | Versión |
Tipos de Registro
| Ejemplo | Devuelve |
|---|
doggo example.com A | Direcciones IPv4 |
doggo example.com AAAA | Direcciones IPv6 |
doggo example.com MX | Servidores de correo |
doggo example.com TXT | Registros TXT (SPF, DKIM, verificación) |
doggo example.com NS | Servidores de nombres |
doggo example.com CNAME | Nombre canónico |
doggo example.com SOA | Inicio de autoridad |
doggo example.com CAA | Autorización de autoridad de certificado |
Transportes Encriptados y Alternativos
| Comando | Transporte |
|---|
doggo example.com @https://cloudflare-dns.com/dns-query | DNS-over-HTTPS (DoH) |
doggo example.com @tls://1.1.1.1 | DNS-over-TLS (DoT) |
doggo example.com @quic://dns.adguard.com | DNS-over-QUIC (DoQ) |
doggo example.com @sdns://... | DNSCrypt (stamp) |
doggo example.com @udp://1.1.1.1 | UDP explícito |
doggo example.com @tcp://1.1.1.1 | TCP explícito |
Control de Salida
| Opción | Descripción |
|---|
--json | Salida JSON (excelente para scripts) |
--short | Imprimir solo los valores de respuesta |
--color=false | Desactivar salida colorizada |
--time | Mostrar tiempo de ida y vuelta de la consulta |
-4 / -6 | Forzar transporte IPv4 / IPv6 |
Inversa y Avanzado
| Comando | Descripción |
|---|
doggo --reverse 1.1.1.1 | Búsqueda DNS inversa (PTR) |
doggo example.com --ndots=1 | Controlar el comportamiento de resolución de ndots |
doggo example.com --search | Usar la lista de búsqueda del sistema |
doggo example.com --aa | Solicitar respuesta autorizada |
doggo example.com --do | Establecer el bit de DNSSEC OK |
Flujos de Trabajo Comunes
# Respuesta rápida y legible solo para humanos
doggo --short example.com
# Verificar configuración de correo de un vistazo
doggo example.com MX TXT
# Probar un resolvedor DoH y medir su tiempo
doggo example.com @https://dns.google/dns-query --time
# JSON amigable para scripts para monitoreo
doggo example.com A --json | jq '.responses[].answers'
# Confirmar un registro inverso para una IP
doggo --reverse 8.8.8.8 --short
doggo vs dig vs dog
| Característica | doggo | dig | dog |
|---|
| Salida colorizada | Sí | No | Sí |
| Salida JSON | Sí | No | Sí |
| DoH / DoT / DoQ | Sí | Limitado | Sí |
| DNSCrypt | Sí | No | No |
| Binario único | Sí (Go) | Paquete del sistema | Sí (Rust) |
Recursos