This module contains functions that belong to two different categories:
1) Functions that use the underlying operating system facilities to perform name resolution,
and that do not necessarily do any network communication. This category contains only one function: lookup.
Developers looking to perform name resolution in the same way that other applications on the same operating
system behave should use lookup.
2) Functions that connect to an actual DNS server to perform name resolution,
and that always use the network to perform DNS queries. This category contains all functions in the dns module but lookup.
These functions do not use the same set of configuration files than what lookup uses. For instance,
they do not use the configuration from /etc/hosts. These functions should be used by developers who do not want
to use the underlying operating system's facilities for name resolution, and instead want to always perform DNS queries.
Static variables
staticread onlyADDRCONFIG:Int
A flag passed in the hints argument of lookup method.
Returned address types are determined by the types of addresses supported by the current system. For example, IPv4 addresses are only returned if the current system has at least one IPv4 address configured. Loopback addresses are not considered.
Static methods
staticgetServers():Array<String>
Returns an array of IP addresses as strings that are currently being used for resolution.
staticlookup(hostname:String, callback:DnsLookupCallbackSingle):Void
staticlookup(hostname:String, options:EitherType<DnsAddressFamily, DnsLookupOptions>, callback:EitherType<DnsLookupCallbackSingle, DnsLookupCallbackAll>):Void
Resolves a hostname (e.g. 'google.com') into the first found A (IPv4) or AAAA (IPv6) record.
If options is not provided, then IP v4 and v6 addresses are both valid.
The family can be the integer 4 or 6. Defaults to null that indicates both Ip v4 and v6 address family.
The callback has arguments (err, address, family).
The address argument is a string representation of a IP v4 or v6 address.
The family argument is either the integer 4 or 6 and denotes the family
of address (not necessarily the value initially passed to lookup).
With the all option set, the arguments change to (err, addresses), with addresses being an array of objects
with the properties address and family.
Keep in mind that err.code will be set to 'ENOENT' not only when the hostname does not exist but
also when the lookup fails in other ways such as no available file descriptors.
lookup doesn't necessarily have anything to do with the DNS protocol. It's only an operating system facility
that can associate name with addresses, and vice versa.
staticlookupService(address:String, port:Int, callback:(DnsError, String, String) ‑> Void):Void
Resolves the given address and port into a hostname and service using getnameinfo.
The callback has arguments (err, hostname, service).
The hostname and service arguments are strings (e.g. 'localhost' and 'http' respectively).
On error, err is an Error object, where err.code is the error code.
staticresolve(hostname:String, rrtype:DnsRrtype, callback:(DnsError, Array<DnsResolvedAddress>) ‑> Void):Void
staticresolve(hostname:String, callback:(DnsError, Array<DnsResolvedAddress>) ‑> Void):Void
Resolves a hostname (e.g. 'google.com') into an array of the record types specified by rrtype.
The callback has arguments (err, addresses).
The type of each item in addresses is determined by the record type,
and described in the documentation for the corresponding lookup methods below.
On error, err is an Error object, where err.code is the error code.
staticresolve4(hostname:String, callback:(DnsError, Array<String>) ‑> Void):Void
The same as resolve, but only for IPv4 queries (A records).
addresses is an array of IPv4 addresses (e.g. ['74.125.79.104', '74.125.79.105', '74.125.79.106']).
staticresolve6(hostname:String, callback:(DnsError, Array<String>) ‑> Void):Void
The same as resolve4 except for IPv6 queries (an AAAA query).
staticresolveCname(hostname:String, callback:(DnsError, Array<String>) ‑> Void):Void
The same as resolve, but only for canonical name records (CNAME records).
addresses is an array of the canonical name records available for hostname (e.g., ['bar.example.com']).
staticresolveMx(hostname:String, callback:(DnsError, Array<DnsResolvedAddressMX>) ‑> Void):Void
The same as resolve, but only for mail exchange queries (MX records).
addresses is an array of MX records, each with a priority
and an exchange attribute (e.g. [{'priority': 10, 'exchange': 'mx.example.com'},...]).
staticresolveNs(hostname:String, callback:(DnsError, Array<String>) ‑> Void):Void
The same as resolve, but only for name server records (NS records).
addresses is an array of the name server records available for hostname (e.g., ['ns1.example.com', 'ns2.example.com']).
staticresolvePtr(hostname:String, callback:(DnsError, Array<String>) ‑> Void):Void
Uses the DNS protocol to resolve pointer records (PTR records) for the hostname.
The addresses argument passed to the callback function will be an array of strings containing the reply records.
staticresolveSoa(hostname:String, callback:(DnsError, DnsResolvedAddressSOA) ‑> Void):Void
The same as resolve, but only for start of authority record queries (SOA record).
addresses is an object with the following structure:
{
nsname: 'ns.example.com',
hostmaster: 'root.example.com',
serial: 2013101809,
refresh: 10000,
retry: 2400,
expire: 604800,
minttl: 3600
}
staticresolveSrv(hostname:String, callback:(DnsError, Array<DnsResolvedAddressSRV>) ‑> Void):Void
The same as resolve, but only for service records (SRV records).
addresses is an array of the SRV records available for hostname.
Properties of SRV records are priority, weight, port, and name
(e.g., [{'priority': 10, 'weight': 5, 'port': 21223, 'name': 'service.example.com'}, ...]).
staticresolveTxt(hostname:String, callback:(DnsError, Array<Array<String>>) ‑> Void):Void
The same as resolve, but only for text queries (TXT records).
addresses is a 2-d array of the text records available for hostname (e.g., [ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]).
Each sub-array contains TXT chunks of one record. Depending on the use case, the could be either joined together
or treated separately.
staticreverse(ip:String, callback:(DnsError, Array<String>) ‑> Void):Void
Reverse resolves an ip address to an array of hostnames.
The callback has arguments (err, hostname).
staticsetServers(servers:Array<String>):Void
Given an array of IP addresses as strings, set them as the servers to use for resolving.
If you specify a port with the address it will be stripped, as the underlying library doesn't support that.
This will throw if you pass invalid input.