Node's Perpetuum Mobile


    0.1.1 • Public • Published


    stability-unstable Build Status npm node license downloads

    dnscrypt logo

    DNSCrypt - authenticated and encrypted DNS client for nodejs


    const dnscrypt = require('dnscrypt');
    dnscrypt.resolve('', (err, addresses) => {
      if (err) {
      } else {
    // Supports both callback and promise-based styles.
    await dnscrypt.resolve4('');
    const resolver = dnscrypt.createResolver({ timeout: 1e3 });

    How to

    • Use global api dnscrypt.resolve for single looking up.
    • Use resolver api dnscrypt.createResolver() for multiple lookups (to avoid repeated certificate requests).


    • dnscrypt.resolve(hostname[, rrtype], callback): void
    • dnscrypt.resolve(hostname[, rrtype]): Promise

    See dns.resolve.

    • dnscrypt.resolve4(hostname[, options], callback): void
    • dnscrypt.resolve4(hostname[, options]): Promise

    See dns.resolve4.

    • dnscrypt.resolve6(hostname[, options], callback): void
    • dnscrypt.resolve6(hostname[, options]): Promise

    See dns.resolve6.

    • dnscrypt.resolveCname(hostname, callback): void
    • dnscrypt.resolveCname(hostname): Promise

    See dns.resolveCname.

    • dnscrypt.resolveMx(hostname, callback): void
    • dnscrypt.resolveMx(hostname): Promise

    See dns.resolveMx.

    • dnscrypt.resolveNs(hostname, callback): void
    • dnscrypt.resolveNs(hostname): Promise

    See dns.resolveNs.

    • dnscrypt.resolvePtr(hostname, callback): void
    • dnscrypt.resolvePtr(hostname): Promise

    See dns.resolvePtr.

    • dnscrypt.resolveSoa(hostname, callback): void
    • dnscrypt.resolveSoa(hostname): Promise

    See dns.resolveSoa.

    • dnscrypt.resolveSrv(hostname, callback): void
    • dnscrypt.resolveSrv(hostname): Promise

    See dns.resolveSrv.

    • dnscrypt.resolveTxt(hostname, callback): void
    • dnscrypt.resolveTxt(hostname): Promise

    See dns.resolveTxt.

    • dnscrypt.getServers(): DNSStamp[]

    Returns an array of active DNS servers.

    • dnscrypt.createResolver([options]): Resolver

    Create a new independent resolver for DNS requests.

    • options.timeout: number - The number of milliseconds before a request times out, 2s default.
    • options.unref: bool - Call .unref() on internal dgram socket.
    • options.sdns: string - Use secure DNS resolver instead of default one.

    The following methods from the dnscrypt module are available:

    • resolver.resolve(hostname[, rrtype], callback): void

    • resolver.resolve(hostname[, rrtype]): Promise

    • resolver.resolve4(hostname[, options], callback): void

    • resolver.resolve4(hostname[, options]): Promise

    • resolver.resolve6(hostname[, options], callback): void

    • resolver.resolve6(hostname[, options]): Promise

    • resolver.resolveCname(hostname, callback): void

    • resolver.resolveCname(hostname): Promise

    • resolver.resolveMx(hostname, callback): void

    • resolver.resolveMx(hostname): Promise

    • resolver.resolveNs(hostname, callback): void

    • resolver.resolveNs(hostname): Promise

    • resolver.resolvePtr(hostname, callback): void

    • resolver.resolvePtr(hostname): Promise

    • resolver.resolveSoa(hostname, callback): void

    • resolver.resolveSoa(hostname): Promise

    • resolver.resolveSrv(hostname, callback): void

    • resolver.resolveSrv(hostname): Promise

    • resolver.resolveTxt(hostname, callback): void

    • resolver.resolveTxt(hostname): Promise

    • resolver.getServers(): DNSStamp[]

    • resolver.setServers(sdns): void

    Change the address of internal secure DNS server.

    • resolver.close(): void

    Close encrypted DNS session.


    MIT, 2019 (c) Dmitriy Tsvettsikh



    npm i dnscrypt

    DownloadsWeekly Downloads






    Unpacked Size

    46.4 kB

    Total Files


    Last publish


    • reklatsmasters