JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 133958
  • Score
    100M100P100Q276631F
  • License MIT

DNS over HTTP resolver

Package Exports

  • dns-over-http-resolver

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dns-over-http-resolver) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

dns-over-http-resolver

Build Status dependencies Status JavaScript Style Guide

DNS over HTTP resolver

Isomorphic DNS over HTTP resolver using fetch.

API based on Node.js' dns promises API, allowing the native dns module to be used if available when relying on this API.

Install

npm i dns-over-http-resolver

Usage

const DnsOverHttpResolver = require('dns-over-http-resolver')

You can also use require('dns').promises in Node.js in lieu of this module.

Cloudflare and Google DNS servers are used by default. They can be replaced via the API.

API

resolve(hostname, rrType)

Uses the DNS protocol to resolve the given host name into a DNS record.

Parameters

Name Type Description
hostname string host name to resolve
[rrType] string resource record type (default: 'A')

Returns

Type Description
Promise<Array<string>> returns a Promise resolving a DNS record according to its type

Example

const DnsOverHttpResolver = require('dns-over-http-resolver')
const resolver = new DnsOverHttpResolver()

const hostname = 'google.com'
const recordType = 'TXT'

const dnsRecord = await resolver.resolve(hostname, recordType)

resolve4(hostname)

Uses the DNS protocol to resolve the given host name into IPv4 addresses.

Parameters

Name Type Description
hostname string host name to resolve

Returns

Type Description
Promise<Array<string>> returns a Promise resolving IPv4 addresses

Example

const DnsOverHttpResolver = require('dns-over-http-resolver')
const resolver = new DnsOverHttpResolver()

const hostname = 'google.com'

const address = await resolver.resolve4(hostname) // ['216.58.212.142']

resolve6(hostname)

Uses the DNS protocol to resolve the given host name into IPv6 addresses.

Parameters

Name Type Description
hostname string host name to resolve

Returns

Type Description
Promise<Array<string>> returns a Promise resolving IPv6 addresses

Example

const DnsOverHttpResolver = require('dns-over-http-resolver')
const resolver = new DnsOverHttpResolver()

const hostname = 'google.com'

const address = await resolver.resolve6(hostname) // ['2a00:1450:4001:801::200e']

resolveTxt(hostname)

Uses the DNS protocol to resolve the given host name into a Text Record.

Parameters

Name Type Description
hostname string host name to resolve

Returns

Type Description
Promise<Array<Array<string>>> returns a Promise resolving a Text Record

Example

const DnsOverHttpResolver = require('dns-over-http-resolver')
const resolver = new DnsOverHttpResolver()

const hostname = 'google.com'

const address = await resolver.resolveTxt(hostname) // [['v=spf1 -all']]

getServers()

Get an array of the IP addresses currently configured for DNS resolution. These addresses are formatted according to RFC 5952. It can include a custom port.

Returns

Type Description
Array<string> returns array of DNS servers used

Example

const DnsOverHttpResolver = require('dns-over-http-resolver')

const resolver = new DnsOverHttpResolver()
const servers = resolver.getServers()

setServers(servers)

Sets the IP address and port of servers to be used when performing DNS resolution.

Parameters

Name Type Description
servers Array<string> Array of RFC 5952 formatted addresses.

Example

const DnsOverHttpResolver = require('dns-over-http-resolver')

const resolver = new DnsOverHttpResolver()
resolver.setServers(['https://cloudflare-dns.com/dns-query'])

Contribute

Feel free to dive in! Open an issue or submit PRs.

License

MIT © Vasco Santos