#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
3 min read
Question 44 of 62medium

How to perform DNS lookups in Node.js?

DNS resolution and lookups.

What You'll Learn

  • DNS lookup methods
  • Resolving different record types
  • Reverse lookups

DNS Lookups

code.jsJavaScript
const dns = require('dns');
const dnsPromises = require('dns/promises');

// Callback style
dns.lookup('google.com', (err, address, family) => {
  console.log('Address:', address);   // IP address
  console.log('Family:', family);     // 4 or 6
});

// Promise style
const { address } = await dnsPromises.lookup('google.com');
console.log(address);

// Get all addresses
const addresses = await dnsPromises.lookup('google.com', { all: true });
console.log(addresses);
// [{ address: '142.250.x.x', family: 4 }, ...]

Resolve Records

code.jsJavaScript
// A records (IPv4)
const ips = await dnsPromises.resolve4('google.com');

// AAAA records (IPv6)
const ipv6s = await dnsPromises.resolve6('google.com');

// MX records (mail)
const mx = await dnsPromises.resolveMx('google.com');
// [{ priority: 10, exchange: 'smtp.google.com' }, ...]

// TXT records
const txt = await dnsPromises.resolveTxt('google.com');

// NS records (nameservers)
const ns = await dnsPromises.resolveNs('google.com');

// CNAME records
const cname = await dnsPromises.resolveCname('www.google.com');

// All records
const any = await dnsPromises.resolveAny('google.com');

Reverse Lookup

code.jsJavaScript
// IP to hostname
const hostnames = await dnsPromises.reverse('8.8.8.8');
console.log(hostnames); // ['dns.google']