Resolver
[<Interface>]
type Resolver =
abstract member getServers: unit -> string array with get, set
abstract member resolveAny: string -> Promise<AnyRecord array> with get, set
abstract member resolveCaa: string -> Promise<CaaRecord array> with get, set
abstract member resolveCname: string -> Promise<string array> with get, set
abstract member resolveMx: string -> Promise<MxRecord array> with get, set
abstract member resolveNaptr: string -> Promise<NaptrRecord array> with get, set
abstract member resolveNs: string -> Promise<string array> with get, set
abstract member resolvePtr: string -> Promise<string array> with get, set
abstract member resolveSoa: string -> Promise<SoaRecord> with get, set
abstract member resolveSrv: string -> Promise<SrvRecord array> with get, set
abstract member resolveTlsa: string -> Promise<TlsaRecord array> with get, set
abstract member resolveTxt: string -> Promise<string array array> with get, set
abstract member reverse: string -> Promise<string array> with get, set
abstract member setServers: string array -> unit with get, set
abstract member cancel () : unit
abstract member resolve (hostname: string, rrtype: string) : Promise<U9<string array,string array array,CaaRecord array,MxRecord array,NaptrRecord array,SrvRecord array,TlsaRecord array,AnyRecord array,SoaRecord>>
abstract member resolve (hostname: string, rrtype: Rrtype) : Promise<string array>
abstract member resolve (hostname: string) : Promise<string array>
abstract member resolve4 (hostname: string, options: ResolveOptions) : Promise<U2<string array,RecordWithTtl array>>
abstract member resolve4 (hostname: string, options: ResolveWithTtlOptions) : Promise<RecordWithTtl array>
abstract member resolve4 (hostname: string) : Promise<string array>
abstract member resolve6 (hostname: string, options: ResolveOptions) : Promise<U2<string array,RecordWithTtl array>>
abstract member resolve6 (hostname: string, options: ResolveWithTtlOptions) : Promise<RecordWithTtl array>
abstract member resolve6 (hostname: string) : Promise<string array>
abstract member resolveANY (hostname: string) : Promise<AnyRecord array>
abstract member resolveCAA (hostname: string) : Promise<CaaRecord array>
abstract member resolveMX (hostname: string) : Promise<MxRecord array>
abstract member resolveNAPTR (hostname: string) : Promise<NaptrRecord array>
abstract member resolveSOA (hostname: string) : Promise<SoaRecord>
abstract member resolveSRV (hostname: string) : Promise<SrvRecord array>
abstract member resolveTLSA (hostname: string) : Promise<TlsaRecord array>
abstract member resolveTXT (hostname: string) : Promise<string array array>
abstract member setLocalAddress (?ipv4: string, ?ipv6: string) : unit| Assembly | Xantham.Fable.Node |
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
Properties
abstract member resolveAny: string -> Promise<AnyRecord array> with get, setabstract member resolveCaa: string -> Promise<CaaRecord array> with get, setabstract member resolveMx: string -> Promise<MxRecord array> with get, setabstract member resolveNaptr: string -> Promise<NaptrRecord array> with get, setabstract member resolveSoa: string -> Promise<SoaRecord> with get, setabstract member resolveSrv: string -> Promise<SrvRecord array> with get, setabstract member resolveTlsa: string -> Promise<TlsaRecord array> with get, setMethods
abstract member cancel () : unit
abstract member cancel () : unitCancel 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 resolve (hostname: string, rrtype: string) : Promise<U9<string array,string array array,CaaRecord array,MxRecord array,NaptrRecord array,SrvRecord array,TlsaRecord array,AnyRecord array,SoaRecord>>abstract member resolve (hostname: string, rrtype: Rrtype) : Promise<string array>abstract member resolve4 (hostname: string, options: ResolveOptions) : Promise<U2<string array,RecordWithTtl array>>abstract member resolve4 (hostname: string, options: ResolveWithTtlOptions) : Promise<RecordWithTtl array>abstract member resolve6 (hostname: string, options: ResolveOptions) : Promise<U2<string array,RecordWithTtl array>>abstract member resolve6 (hostname: string, options: ResolveWithTtlOptions) : Promise<RecordWithTtl array>abstract member resolveANY (hostname: string) : Promise<AnyRecord array>
abstract member resolveANY (hostname: string) : Promise<AnyRecord array>function resolve(hostname: string, rrtype: "ANY"): Promise<AnyRecord[]>
abstract member resolveCAA (hostname: string) : Promise<CaaRecord array>
abstract member resolveCAA (hostname: string) : Promise<CaaRecord array>function resolve(hostname: string, rrtype: "CAA"): Promise<CaaRecord[]>
abstract member resolveMX (hostname: string) : Promise<MxRecord array>
abstract member resolveMX (hostname: string) : Promise<MxRecord array>function resolve(hostname: string, rrtype: "MX"): Promise<MxRecord[]>
abstract member resolveNAPTR (hostname: string) : Promise<NaptrRecord array>
abstract member resolveNAPTR (hostname: string) : Promise<NaptrRecord array>function resolve(hostname: string, rrtype: "NAPTR"): Promise<NaptrRecord[]>
abstract member resolveSOA (hostname: string) : Promise<SoaRecord>
abstract member resolveSOA (hostname: string) : Promise<SoaRecord>function resolve(hostname: string, rrtype: "SOA"): Promise<SoaRecord>
abstract member resolveSRV (hostname: string) : Promise<SrvRecord array>
abstract member resolveSRV (hostname: string) : Promise<SrvRecord array>function resolve(hostname: string, rrtype: "SRV"): Promise<SrvRecord[]>
abstract member resolveTLSA (hostname: string) : Promise<TlsaRecord array>
abstract member resolveTLSA (hostname: string) : Promise<TlsaRecord array>function resolve(hostname: string, rrtype: "TLSA"): Promise<TlsaRecord[]>
abstract member resolveTXT (hostname: string) : Promise<string array array>
abstract member resolveTXT (hostname: string) : Promise<string array array>function resolve(hostname: string, rrtype: "TXT"): Promise<string[][]>
abstract member setLocalAddress (?ipv4: string, ?ipv6: string) : unit
abstract member setLocalAddress (?ipv4: string, ?ipv6: string) : unitThe 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 | |
|---|---|
ipv4 | A string representation of an IPv4 address. |
ipv6 | A string representation of an IPv6 address. |