ZDNS is a high-speed Go library and command-line tool designed for performing large-scale DNS measurements. ZDNS implements its own recursive DNS resolution engine and an optimized cache for handling various DNS name lookups. It utilizes the zmap/dns library to process raw DNS packets, providing a robust and efficient solution for DNS analysis tasks.
ZDNS distinguishes itself through its speed and flexibility. It offers a comprehensive set of modules for handling various DNS record types, including raw JSON output. The tool supports flexible input methods such as standard input, files, and per-domain nameservers. This granular control enhances its utility for specialized DNS analysis.
- Raw DNS Modules: Provides JSON output of raw DNS responses, similar to
dig. - Lookup Modules: Offers
alookup,mxlookup, andnslookupfor enhanced DNS resolution and CNAME/MX record following. - Flexible Input: Supports standard input, file input, and per-domain nameserver specification for versatile use cases.
ZDNS appears to be a mature project with a history of development and recent commits, suggesting active maintenance. A published research paper and example usage further support its reliability. The presence of a wiki contributes to its documentation and usability.
ZDNS is valuable for network researchers, security analysts, and anyone needing high-performance DNS lookups. It facilitates the analysis of DNS infrastructure, identification of DNS patterns, and testing of DNS configurations. It offers a more efficient and customizable alternative to traditional command-line tools like dig for large-scale DNS processing.
