Resolve DNS queries with browser fallback
Query DNS records using node:dns
, DNS over HTTP and/or DNSJSON over HTTP.
A list of publicly accessible servers can be found here.
Example - Using the default resolverimport { dns } from '@multiformats/dns' const resolver = dns() // resolve A records with a 5s timeout const result = await dns.query('google.com', { signal: AbortSignal.timeout(5000) })Example - Using per-TLD resolvers
import { dns } from '@multiformats/dns' import { dnsJsonOverHttps } from '@multiformats/dns/resolvers' const resolver = dns({ resolvers: { // will only be used to resolve `.com` addresses 'com.': dnsJsonOverHttps('https://cloudflare-dns.com/dns-query'), // this can also be an array, resolvers will be shuffled and tried in // series 'net.': [ dnsJsonOverHttps('https://dns.google/resolve'), dnsJsonOverHttps('https://dns.pub/dns-query') ], // will only be used to resolve all other addresses '.': dnsJsonOverHttps('https://dnsforge.de/dns-query'), } })Example - Query for specific record types
import { dns, RecordType } from '@multiformats/dns' const resolver = dns() // resolve only TXT records const result = await dns.query('google.com', { types: [ RecordType.TXT ] })
Individual Aanswers are cached so. If you make a request, for which all record types are cached, all values will be pulled from the cache.
If any of the record types are not cached, a new request will be resolved as if none of the records were cached, and the cache will be updated to include the new results.
Example - Ignoring the cacheimport { dns, RecordType } from '@multiformats/dns' const resolver = dns() // do not used cached results, always resolve a new query const result = await dns.query('google.com', { cached: false })
$ npm i @multiformats/dns
Loading this module through a script tag will make it's exports available as MultiformatsDns
in the global namespace.
<script src="https://unpkg.com/@multiformats/dns/dist/index.min.js"></script>
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4