Skip to content

An NPM package to provide non-rejecting promises for Node's DNS module

License

Notifications You must be signed in to change notification settings

CryptoScamDB/graceful-dns

Repository files navigation

graceful-dns

Disclaimer

Are you writing code in dev environments? Check out the experimental DNS Promises API (added in v10.6.0)

Do you want promises to reject instead of returning undefined? Check out dns-then

This project wraps a part of Node.js's dns module in non-rejecting promises (instead of rejecting, it returns undefined. It also parses URLs to hostnames automatically. It's not a 1:1 port.

Usage

npm i -P @cryptoscamdb/graceful-dns

API

  • getServers() - returns an array of IP addresses which are configured for DNS lookups
  • setServers(servers) - configures an array of IP addresses which are configured for DNS lookups
  • getIP(hostname) - returns a promise which will resolve to either undefined or the IP address
  • getDNS(hostname) - returns a promise which will resolve to either undefined or an array of DNS records
  • getNS(hostname) - returns a promise which will resolve to either undefined or an array of nameservers
  • reverseDNS(ip) - returns a promise which will resolve to either undefined or an array of hostnames

Examples

import { getIP } from '@cryptoscamdb/graceful-dns';

getIP('example.com')
    .then((ip: string) => {
        if (ip) {
            console.log("Found IP:", ip);
        } else {
            console.log("Could not find IP address");
        }
    })
    .catch(() => {
        // This should never be called
    });