Node.js – DNS Module
Subject: nodejs
Node.js – DNS Module
The DNS (Domain Name System) module in Node.js provides an interface to perform domain name resolution. It enables developers to look up domain names, resolve IP addresses, and perform reverse lookups—similar to how a browser resolves a domain to an IP before making a request.
The dns
module is a built-in core module, so no external installation is required.
Why Use the DNS Module?
- Resolve domain names to IP addresses
- Perform reverse lookups (IP to domain)
- Access low-level DNS operations (A, AAAA, MX, CNAME, TXT records)
- Useful for load balancers, proxies, diagnostics, and network tools
Importing the DNS Module
1. dns.lookup()
– Resolve Domain to IP
Note: Uses OS-level DNS resolution. Doesn't return all records like dns.resolve()
.
2. dns.resolve()
– Full DNS Query (A, AAAA, MX, etc.)
Supported Record Types:
'A'
– IPv4 addresses'AAAA'
– IPv6 addresses'MX'
– Mail exchange records'CNAME'
– Canonical name records'TXT'
– Text records'NS'
– Name server records
3. dns.reverse()
– IP to Domain (Reverse Lookup)
Output Example:
4. dns.resolve4()
and dns.resolve6()
5. Using Promises with DNS (Node v10.6+)
Real-World Use Cases
- Network diagnostics and monitoring tools
- Custom DNS resolvers, proxies, or VPN tools
- Load balancing by rotating IPs or domains
- Validating DNS records for domain ownership or availability
Key Takeaways
- The
dns
module allows hostname and IP resolution in Node.js. dns.lookup()
uses OS-level resolution (single result).dns.resolve()
performs DNS queries directly (multi-record).dns.reverse()
helps with IP-to-domain lookups.- DNS promises provide modern
async/await
support for cleaner code.