bunkerweb/lua/dns.lua

44 lines
956 B
Lua

local M = {}
local resolver = require "resty.dns.resolver"
function M.get_reverse(resolvers)
local r, err = resolver:new{nameservers=resolvers, retrans=2, timeout=2000}
if not r then
return ""
end
local rdns = ""
local answers, err = r:reverse_query(ngx.var.remote_addr)
if answers ~= nil and not answers.errcode then
for ak, av in ipairs(answers) do
if av.ptrdname then
rdns = av.ptrdname
break
end
end
end
return rdns
end
function M.get_ips(fqdn, resolvers)
local r, err = resolver:new{nameservers=resolvers, retrans=2, timeout=2000}
if not r then
return ""
end
local ips = {}
local answers, err, tries = r:query(fqdn, nil, {})
if answers ~= nil then
for ak, av in ipairs(answers) do
if av.address then
table.insert(ips, av.address)
end
end
end
return ips
end
function M.ip_to_arpa()
return resolver.arpa_str(ngx.var.remote_addr):gsub("%.in%-addr%.arpa", ""):gsub("%.ip6%.arpa", "")
end
return M