doggo - Cliente DNS Moderno
doggo é um cliente DNS moderno para a linha de comando — uma alternativa amigável e colorida para dig com saída tabelar limpa ou JSON. Além de consultas UDP/TCP tradicionais, fala os transportes modernos criptografados: DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), DNS-over-QUIC (DoQ) e DNSCrypt. É escrito em Go, é entregue como um único binário e é útil tanto para consultas rápidas quanto para diagnósticos de DNS em scripts.
Instalação
| 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 |
| Binário | download na página GitHub Releases |
Consultas Básicas
| Comando | Descrição |
|---|
doggo example.com | Consulta de registro A padrão |
doggo example.com MX | Consultar um tipo de registro específico |
doggo example.com A AAAA MX | Consultar vários tipos de registros simultaneamente |
doggo example.com @1.1.1.1 | Usar um resolver específico |
doggo --help | Lista completa de opções |
doggo --version | Versão |
Tipos de Registro
| Exemplo | Retorna |
|---|
doggo example.com A | Endereços IPv4 |
doggo example.com AAAA | Endereços IPv6 |
doggo example.com MX | Servidores de mail |
doggo example.com TXT | Registros TXT (SPF, DKIM, verificação) |
doggo example.com NS | Servidores de nomes |
doggo example.com CNAME | Nome canônico |
doggo example.com SOA | Início de autoridade |
doggo example.com CAA | Autorização de autoridade de certificação |
Transportes Criptografados e 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 |
Controle de Saída
| Opção | Descrição |
|---|
--json | Saída JSON (ótimo para scripts) |
--short | Imprimir apenas os valores de resposta |
--color=false | Desabilitar saída colorizada |
--time | Mostrar tempo de viagem redonda de consulta |
-4 / -6 | Forçar transporte IPv4 / IPv6 |
Reverso e Avançado
| Comando | Descrição |
|---|
doggo --reverse 1.1.1.1 | Busca reversa de DNS (PTR) |
doggo example.com --ndots=1 | Controlar comportamento de resolução ndots |
doggo example.com --search | Usar a lista de pesquisa do sistema |
doggo example.com --aa | Solicitar resposta autoritativa |
doggo example.com --do | Definir o bit DNSSEC OK |
Fluxos de Trabalho Comuns
# Resposta rápida e legível para humanos, apenas
doggo --short example.com
# Verificar configuração de mail em um relance
doggo example.com MX TXT
# Testar um resolver DoH e medir tempo
doggo example.com @https://dns.google/dns-query --time
# JSON amigável para scripts para monitoramento
doggo example.com A --json | jq '.responses[].answers'
# Confirmar um registro reverso para um IP
doggo --reverse 8.8.8.8 --short
doggo vs dig vs dog
| Recurso | doggo | dig | dog |
|---|
| Saída colorizada | Sim | Não | Sim |
| Saída JSON | Sim | Não | Sim |
| DoH / DoT / DoQ | Sim | Limitado | Sim |
| DNSCrypt | Sim | Não | Não |
| Único binário | Sim (Go) | System pkg | Sim (Rust) |
Recursos