dns
The dns module provides functions for name resolution. It can resolve hostnames into IP addresses, perform reverse lookups, and query specific DNS records.
API Surface
Lookup
dns.lookup(hostname[, options], callback)— resolve hostname to address. Options may includefamily(4 or 6).dns.lookupService(address, port, callback)— resolve address + port to hostname/service.
Resolve
dns.resolve(hostname[, rrtype], callback)— resolve DNS records.rrtype:A,AAAA,MX,TXT,SRV, etc.dns.resolve4/resolve6,dns.resolveMx,dns.resolveTxt, etc.dns.reverse(ip, callback)— reverse IP to hostname.
Promises API
dns.promises.lookup(),dns.promises.resolve(), etc. — return promises.
Sync
- No synchronous DNS methods except via
netorurlparsing.
Examples (English only)
const dns = require("dns");
// Simple lookup
dns.lookup("example.com", (err, address, family) => {
if (err) throw err;
console.log("address:", address, "family: IPv" + family);
});
// Resolve A records
dns.resolve4("example.com", (err, addresses) => {
if (err) throw err;
console.log("IPv4:", addresses);
});
// Reverse lookup
dns.reverse("93.184.216.34", (err, hostnames) => {
if (err) throw err;
console.log("reverse:", hostnames);
});
// Promises API
(async () => {
const { promises: dnsPromises } = require("dns");
const res = await dnsPromises.lookup("example.com");
console.log("promises.lookup:", res.address);
})();
Notes
- Use
dns.lookupfor general hostname resolution (uses OS facilities). - Use
dns.resolvefor actual DNS queries (bypasses OS cache). - Prefer Promises API with async/await for clarity.
- Always handle errors (network issues, NXDOMAIN).