# ogham/dog

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ogham-dog).**

6,667 stars · 208 forks · Rust · EUPL-1.2

## Links

- GitHub: https://github.com/ogham/dog
- Homepage: https://dns.lookup.dog/
- awesome-repositories: https://awesome-repositories.com/repository/ogham-dog.md

## Topics

`client` `command-line` `dns` `rust`

## Description

Dog is a command-line interface tool and network diagnostic utility used for querying DNS records and resolving domain names. It functions as a DNS query tool for retrieving domain information across various network transport protocols.

The tool supports multi-protocol DNS transmission, allowing queries to be sent over UDP, TCP, TLS, and HTTPS. This enables secure DNS communication via encrypted channels to protect privacy and prevent interception.

Capabilities include DNS query troubleshooting, record analysis, and network protocol testing to verify name server connectivity. The system provides protocol configuration and structured output formatting to convert query results into readable text or machine-parsable data.

## Tags

### Networking & Communication

- [DNS Query Tools](https://awesome-repositories.com/f/networking-communication/dns-query-tools.md) — A utility for sending DNS requests over UDP, TCP, TLS, and HTTPS to retrieve domain information.
- [Command-Line Tools](https://awesome-repositories.com/f/networking-communication/dns-resolution/command-line-tools.md) — Provides a terminal-based utility for resolving domain names and querying DNS records via various protocols.
- [DNS Analysis](https://awesome-repositories.com/f/networking-communication/dns-query-routers/dns-reconnaissance/dns-analysis.md) — Retrieves and interprets DNS records to debug domain configurations and analyze hosting details.
- [Troubleshooting Tools](https://awesome-repositories.com/f/networking-communication/dns-query-routers/dns-reconnaissance/dns-record-resolvers/dns-record-query-clients/troubleshooting-tools.md) — Provides command-line capabilities to test and verify domain name resolution across different network protocols.
- [DNS Resolution](https://awesome-repositories.com/f/networking-communication/dns-resolution.md) — Implements the ability to retrieve domain information by querying DNS records via multiple transport layers. ([source](https://cdn.jsdelivr.net/gh/ogham/dog@master/README.md))
- [DNS Response Formatting](https://awesome-repositories.com/f/networking-communication/dns-response-formatting.md) — Renders DNS query responses in both human-readable text and machine-parsable formats.
- [Multi-Protocol Clients](https://awesome-repositories.com/f/networking-communication/dns-servers/dns-over-https-servers/multi-protocol-encrypted-dns-servers/multi-protocol-clients.md) — Enables sending DNS queries over UDP, TCP, TLS, and HTTPS to ensure connectivity across diverse networks. ([source](https://cdn.jsdelivr.net/gh/ogham/dog@master/README.md))
- [Encrypted Querying](https://awesome-repositories.com/f/networking-communication/dns-servers/dns-over-tls-clients/encrypted-querying.md) — Supports performing domain lookups over encrypted TLS and HTTPS channels to protect user privacy.
- [Network Diagnostic Utilities](https://awesome-repositories.com/f/networking-communication/network-diagnostic-utilities.md) — Offers a command-line interface for troubleshooting DNS resolution and verifying name server connectivity.
- [Protocol-Agnostic Transport Layers](https://awesome-repositories.com/f/networking-communication/protocol-agnostic-transport-layers.md) — Abstracts the query interface to allow identical DNS requests to be sent over UDP, TCP, TLS, or HTTPS.
- [Pluggable Transport Layers](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-transport-layers/pluggable-transport-layers.md) — Provides a modular interface to swap network transport implementations for different DNS protocols.
- [Network Protocol Testing](https://awesome-repositories.com/f/networking-communication/network-protocol-testing.md) — Validates the behavior and connectivity of DNS requests across various transport protocols in different environments.

### Software Engineering & Architecture

- [Stateless Request Processing](https://awesome-repositories.com/f/software-engineering-architecture/stateless-request-processing.md) — Executes DNS requests as independent, single-shot operations without maintaining session state or background daemons.
