Skip to content

Resolver

[<Interface>]
type Resolver =
    abstract member getServers: unit -> string array with get, set
    abstract member resolve: Resolve with get, set
    abstract member resolve4: Resolve4 with get, set
    abstract member resolve6: Resolve6 with get, set
    abstract member resolveAny: ResolveAny with get, set
    abstract member resolveCaa: ResolveCaa with get, set
    abstract member resolveCname: ResolveCname with get, set
    abstract member resolveMx: ResolveMx with get, set
    abstract member resolveNaptr: ResolveNaptr with get, set
    abstract member resolveNs: ResolveNs with get, set
    abstract member resolvePtr: ResolvePtr with get, set
    abstract member resolveSoa: ResolveSoa with get, set
    abstract member resolveSrv: ResolveSrv with get, set
    abstract member resolveTlsa: ResolveTlsa with get, set
    abstract member resolveTxt: ResolveTxt with get, set
    abstract member reverse: Action<string,Callback> with get, set
    abstract member setServers: string array -> unit with get, set
    static member Create (cancel: unit -> unit, getServers: unit -> string array, resolve: Resolve, resolve4: Resolve4, resolve6: Resolve6, resolveAny: ResolveAny, resolveCaa: ResolveCaa, resolveCname: ResolveCname, resolveMx: ResolveMx, resolveNaptr: ResolveNaptr, resolveNs: ResolveNs, resolvePtr: ResolvePtr, resolveSoa: ResolveSoa, resolveSrv: ResolveSrv, resolveTlsa: ResolveTlsa, resolveTxt: ResolveTxt, reverse: Action<string,Callback>, setLocalAddress: Action<string option,string option>, setServers: string array -> unit) : Resolver
    abstract member cancel () : unit
    abstract member setLocalAddress (?ipv4: string, ?ipv6: string) : unit
AssemblyXantham.Fable.Node
Attributes[<Interface>]

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 { Resolver } from 'node:dns';
const resolver = new 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', (err, addresses) => {
// ...
});

The following methods from the node:dns module 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 v8.3.0

Properties

abstract member getServers: unit -> string array with get, set
abstract member resolve: Resolve with get, set
abstract member resolve4: Resolve4 with get, set
abstract member resolve6: Resolve6 with get, set
abstract member resolveAny: ResolveAny with get, set
abstract member resolveCaa: ResolveCaa with get, set
abstract member resolveCname: ResolveCname with get, set
abstract member resolveMx: ResolveMx with get, set
abstract member resolveNaptr: ResolveNaptr with get, set
abstract member resolveNs: ResolveNs with get, set
abstract member resolvePtr: ResolvePtr with get, set
abstract member resolveSoa: ResolveSoa with get, set
abstract member resolveSrv: ResolveSrv with get, set
abstract member resolveTlsa: ResolveTlsa with get, set
abstract member resolveTxt: ResolveTxt with get, set
abstract member reverse: Action<string,Callback> with get, set
abstract member setServers: string array -> unit with get, set

Methods

static member Create (cancel: unit -> unit, getServers: unit -> string array, resolve: Resolve, resolve4: Resolve4, resolve6: Resolve6, resolveAny: ResolveAny, resolveCaa: ResolveCaa, resolveCname: ResolveCname, resolveMx: ResolveMx, resolveNaptr: ResolveNaptr, resolveNs: ResolveNs, resolvePtr: ResolvePtr, resolveSoa: ResolveSoa, resolveSrv: ResolveSrv, resolveTlsa: ResolveTlsa, resolveTxt: ResolveTxt, reverse: Action<string,Callback>, setLocalAddress: Action<string option,string option>, setServers: string array -> unit) : Resolver
abstract member cancel () : unit

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

@since v8.3.0

abstract member setLocalAddress (?ipv4: string, ?ipv6: string) : unit

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.

If a v4 or v6 address is not specified, it is set to the default and the operating system will choose a local address automatically.

The resolver will use the v4 local address when making requests to IPv4 DNS servers, and the v6 local address when making requests to IPv6 DNS servers. The rrtype of resolution requests has no impact on the local address used.

@since v15.1.0, v14.17.0

Parameter
ipv4A string representation of an IPv4 address.
ipv6A string representation of an IPv6 address.