This project is a feature-rich DNS lookup utility implemented in C++ using the c-ares asynchronous DNS library. It replicates and enhances the functionality of the traditional nslookup tool, while introducing modern capabilities and flexible options.
The tool supports domain resolution for A (IPv4), AAAA (IPv6), and CNAME records, allows the use of custom DNS servers, and enables multiple domain lookups in a single run with clean, readable output.
- β
 Asynchronous DNS resolution using c-aresfor non-blocking performance.
- π Supports multiple domain arguments via command-line input.
- π‘ Custom DNS server support (e.g., 8.8.8.8or1.1.1.1).
- π CNAME alias parsing: Extracts and displays alias chains from DNS responses.
- π Clean output similar to nslookup, showing both IPv4 and IPv6 addresses along with any aliases.
- π οΈ Regex-based preprocessing: Automatically strips http://orhttps://from input domains.
- π§΅ Built with multithreading and event-driven design internally via c-aresfor maximum efficiency.
./dnslookup example.com www.test.com --dns 8.8.8.8