Get your own Node server
const dns = require('dns');
const { Resolver } = dns;

// Create a custom resolver with timeout
const resolver = new Resolver();
resolver.setServers(['8.8.8.8', '1.1.1.1']); // Google and Cloudflare DNS
// Set timeout for all operations (in ms)
const TIMEOUT = 2000;
async function resolveWithTimeout(domain, rrtype = 'A') {
  return new Promise((resolve, reject) => {
    const timer = setTimeout(() => {
      reject(new Error(`DNS query timed out after ${TIMEOUT}ms`));
    }, TIMEOUT);

    resolver.resolve(domain, rrtype, (err, addresses) => {
      clearTimeout(timer);
      if (err) return reject(err);
      resolve(addresses);
    });
  });
}
// Example usage
resolveWithTimeout('example.com')
  .then(console.log)
  .catch(console.error);

              
[
  '23.192.228.80',
  '23.192.228.84',
  '23.215.0.136',
  '23.215.0.138',
  '96.7.128.175',
  '96.7.128.198'
]