Resolver

external class Resolver(source)

An independent resolver for DNS requests.

Creating a new resolver uses the default server settings. Setting the servers used for a resolver using resolver.setServers() does not affect other resolvers:

import { promises } from 'node:dns';
const resolver = new promises.Resolver();
resolver.setServers(['4.4.4.4']);

// This request will use the server at 4.4.4.4, independent of global settings.
resolver.resolve4('example.org').then((addresses) => {
  // ...
});

// Alternatively, the same code can be written using async-await style.
(async function() {
  const addresses = await resolver.resolve4('example.org');
})();

The following methods from the dnsPromises API are available:

  • resolver.getServers()

  • resolver.resolve()

  • resolver.resolve4()

  • resolver.resolve6()

  • resolver.resolveAny()

  • resolver.resolveCaa()

  • resolver.resolveCname()

  • resolver.resolveMx()

  • resolver.resolveNaptr()

  • resolver.resolveNs()

  • resolver.resolvePtr()

  • resolver.resolveSoa()

  • resolver.resolveSrv()

  • resolver.resolveTxt()

  • resolver.reverse()

  • resolver.setServers()

Since

v10.6.0

Constructors

Link copied to clipboard
constructor(options: ResolverOptions = definedExternally)

Properties

Link copied to clipboard
var getServers: () -> <Error class: unknown class><String>
Link copied to clipboard
var setServers: (<Error class: unknown class><String>) -> Unit

Functions

Link copied to clipboard
fun cancel()

Cancel all outstanding DNS queries made by this resolver. The corresponding callbacks will be called with an error with code ECANCELLED.

Link copied to clipboard
suspend fun resolve(hostname: String): <Error class: unknown class><String>
suspend fun resolve(hostname: String, rrtype: String): Any
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.A): <Error class: unknown class><String>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.AAAA): <Error class: unknown class><String>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.ANY): <Error class: unknown class><AnyRecord>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.CAA): <Error class: unknown class><CaaRecord>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.CNAME): <Error class: unknown class><String>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.MX): <Error class: unknown class><MxRecord>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.NAPTR): <Error class: unknown class><NaptrRecord>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.NS): <Error class: unknown class><String>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.PTR): <Error class: unknown class><String>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.SOA): SoaRecord
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.SRV): <Error class: unknown class><SrvRecord>
suspend fun resolve(hostname: String, rrtype: ResourceRecordType.TXT): <Error class: unknown class><<Error class: unknown class><String>>
Link copied to clipboard
suspend fun resolve4(hostname: String): <Error class: unknown class><String>
suspend fun resolve4(hostname: String, options: ResolveOptions): Any
suspend fun resolve4(hostname: String, options: ResolveWithTtlOptions): <Error class: unknown class><RecordWithTtl>
Link copied to clipboard
fun resolve4Async(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
fun resolve4Async(hostname: String, options: ResolveOptions): <Error class: unknown class><Any>
fun resolve4Async(hostname: String, options: ResolveWithTtlOptions): <Error class: unknown class><<Error class: unknown class><RecordWithTtl>>
Link copied to clipboard
suspend fun resolve6(hostname: String): <Error class: unknown class><String>
suspend fun resolve6(hostname: String, options: ResolveOptions): Any
suspend fun resolve6(hostname: String, options: ResolveWithTtlOptions): <Error class: unknown class><RecordWithTtl>
Link copied to clipboard
fun resolve6Async(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
fun resolve6Async(hostname: String, options: ResolveOptions): <Error class: unknown class><Any>
fun resolve6Async(hostname: String, options: ResolveWithTtlOptions): <Error class: unknown class><<Error class: unknown class><RecordWithTtl>>
Link copied to clipboard
suspend fun resolveAny(hostname: String): <Error class: unknown class><AnyRecord>
Link copied to clipboard
fun resolveAnyAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><AnyRecord>>
Link copied to clipboard
fun resolveAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
fun resolveAsync(hostname: String, rrtype: String): <Error class: unknown class><Any>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.A): <Error class: unknown class><<Error class: unknown class><String>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.AAAA): <Error class: unknown class><<Error class: unknown class><String>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.ANY): <Error class: unknown class><<Error class: unknown class><AnyRecord>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.CAA): <Error class: unknown class><<Error class: unknown class><CaaRecord>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.CNAME): <Error class: unknown class><<Error class: unknown class><String>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.MX): <Error class: unknown class><<Error class: unknown class><MxRecord>>
fun resolveAsync(    hostname: String,     rrtype: ResourceRecordType.NAPTR): <Error class: unknown class><<Error class: unknown class><NaptrRecord>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.NS): <Error class: unknown class><<Error class: unknown class><String>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.PTR): <Error class: unknown class><<Error class: unknown class><String>>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.SOA): <Error class: unknown class><SoaRecord>
fun resolveAsync(hostname: String, rrtype: ResourceRecordType.SRV): <Error class: unknown class><<Error class: unknown class><SrvRecord>>
fun resolveAsync(    hostname: String,     rrtype: ResourceRecordType.TXT): <Error class: unknown class><<Error class: unknown class><<Error class: unknown class><String>>>
Link copied to clipboard
suspend fun resolveCaa(hostname: String): <Error class: unknown class><CaaRecord>
Link copied to clipboard
fun resolveCaaAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><CaaRecord>>
Link copied to clipboard
suspend fun resolveCname(hostname: String): <Error class: unknown class><String>
Link copied to clipboard
fun resolveCnameAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
Link copied to clipboard
suspend fun resolveMx(hostname: String): <Error class: unknown class><MxRecord>
Link copied to clipboard
fun resolveMxAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><MxRecord>>
Link copied to clipboard
suspend fun resolveNaptr(hostname: String): <Error class: unknown class><NaptrRecord>
Link copied to clipboard
fun resolveNaptrAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><NaptrRecord>>
Link copied to clipboard
suspend fun resolveNs(hostname: String): <Error class: unknown class><String>
Link copied to clipboard
fun resolveNsAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
Link copied to clipboard
suspend fun resolvePtr(hostname: String): <Error class: unknown class><String>
Link copied to clipboard
fun resolvePtrAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
Link copied to clipboard
suspend fun resolveSoa(hostname: String): SoaRecord
Link copied to clipboard
fun resolveSoaAsync(hostname: String): <Error class: unknown class><SoaRecord>
Link copied to clipboard
suspend fun resolveSrv(hostname: String): <Error class: unknown class><SrvRecord>
Link copied to clipboard
fun resolveSrvAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><SrvRecord>>
Link copied to clipboard
suspend fun resolveTxt(hostname: String): <Error class: unknown class><<Error class: unknown class><String>>
Link copied to clipboard
fun resolveTxtAsync(hostname: String): <Error class: unknown class><<Error class: unknown class><<Error class: unknown class><String>>>
Link copied to clipboard
suspend fun reverse(ip: String): <Error class: unknown class><String>
Link copied to clipboard
fun reverseAsync(ip: String): <Error class: unknown class><<Error class: unknown class><String>>
Link copied to clipboard
fun setLocalAddress(ipv4: String = definedExternally, ipv6: String = definedExternally)

The resolver instance will send its requests from the specified IP address. This allows programs to specify outbound interfaces when used on multi-homed systems.