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.
Next : Node.js Util Module