RFC-8484 Compliant DNS-over-HTTPS API
npm install @masx200/dns-over-https-node@masx200/dns-over-https-node
is an RFC-8484 compliant Node.js
DNS over HTTPS API.




```
$ npm install --save @masx200/dns-over-https-node
We import as follows:
`js`
const doh = require("@masx200/dns-over-https-node");
#### doh.query(...)
`js`
doh.query = {
name,
method: "POST",
hostname: "cloudflare-dns.com",
path: "/dns-query",
port: 443,
userAgent: "@masx200/dns-over-https-node",
type: "A",
klass: "IN",
useHttps: true,
};
A name is mandatory. You can set your own method, hostname, path,port, userAgent, type, klass and useHttps.
A Promise that resolves to a DNS response object is returned.
For instance,
`js`
const doh = require("@masx200/dns-over-https-node")(async () => {
const dnsResponse = await doh.query({ name: "dns.google" });
})();
Results in:
``
{
"id": 0,
"type": "response",
"flags": 384,
"flag_qr": true,
"opcode": "QUERY",
"flag_aa": false,
"flag_tc": false,
"flag_rd": true,
"flag_ra": true,
"flag_z": false,
"flag_ad": false,
"flag_cd": false,
"rcode": "NOERROR",
"questions": [
{
"name": "dns.google",
"type": "A",
"class": "IN"
}
],
"answers": [
{
"name": "dns.google",
"type": "A",
"ttl": 300,
"class": "IN",
"flush": false,
"data": "151.101.1.195"
},
{
"name": "dns.google",
"type": "A",
"ttl": 300,
"class": "IN",
"flush": false,
"data": "151.101.65.195"
}
],
"authorities": [],
"additionals": []
}
More usage examples can be found in
example`.
MIT