dns.client.new

dns.client

new(cfg) -> resolver, err

Create a new DNS resolver

Configuration fields:

local dns_client = require("dns.client")
local dns_cache = require("dns.cache")

-- Simple resolver
local r = dns_client.new({ servers = { "1.1.1.1", "8.8.8.8" } })
local answers, err = r:resolve("example.com", "A")

-- Per-server port
local r = dns_client.new({
    servers = { { host = "127.0.0.1", port = 5353 }, "8.8.8.8" },
})

-- From system resolv.conf
local sys = dns_client.parse_resolv_conf()
local r = dns_client.new(sys)

-- DNS-over-TLS
local r = dns_client.new({
    servers = { "1.1.1.1" },
    use_tls = true,
})