Working with DNS Module

1. Resolving Domain Names (dns.lookup)

Example

import dns from "node:dns/promises";
const { address, family } = await dns.lookup("example.com");
BehaviorDetail
Uses OS resolverHonors /etc/hosts
Blocks libuv threadPool size = UV_THREADPOOL_SIZE

2. Resolving with dns.resolve

APIReturns
dns.resolve4(host)A records
dns.resolve6(host)AAAA records
dns.resolveMx(host)Mail exchange
dns.resolveNs(host)Name servers

3. Resolving CNAME Records (dns.resolveCname)

APIReturns
dns.resolveCname(host)Array of canonical names

4. Resolving TXT Records (dns.resolveTxt)

APIReturns
dns.resolveTxt(host)Array of string arrays
Use casesSPF, DKIM, domain verification

5. Resolving SRV Records (dns.resolveSrv)

FieldDescription
priorityLower = preferred
weightSelection weight
portService port
nameTarget hostname

6. Reverse DNS Lookup (dns.reverse)

APIReturns
dns.reverse(ip)Array of hostnames

7. Getting Name Servers (dns.getServers)

APIReturns
dns.getServers()IP strings (with optional port)

8. Setting Name Servers (dns.setServers)

Example

dns.setServers(["1.1.1.1", "8.8.8.8"]);

9. Using Promises API (dns.promises)

ImportStyle
import dns from "node:dns/promises"Promise API
new dns.Resolver()Per-instance config (servers, TTL)

10. Handling DNS Errors

CodeMeaning
ENOTFOUNDDomain doesn't resolve
ESERVFAILDNS server failure
ETIMEOUTLookup timed out
NODATANo record of requested type