lua-resty-dns通过IP反查域名失败

68 views
Skip to first unread message

hjy...@gmail.com

unread,
May 10, 2016, 7:21:23 AM5/10/16
to openresty
用下面这段代码,来反查一个百度IP 220.181.108.145 的域名,查询失败:

local resolver = require "resty.dns.resolver"
local r, err = resolver:new{
       nameservers = {"114.114.114.114", "223.5.5.5"},
       retrans = 5,  -- 5 retransmissions on receive timeout
       timeout = 2000,  -- 2 sec
}

if not r then
    ngx.say("failed to instantiate the resolver: ", err)
    return
end

local answers, err = r:query("145.108.181.220.in-addr.arpa", TYPE_PTR)
if not answers then
    ngx.say("failed to query the DNS server: ", err)
    return
end

if answers.errcode then
    ngx.say("server returned error code: ", answers.errcode,
            ": ", answers.errstr)
end

for i, ans in ipairs(answers) do
    ngx.say(ans.name, " ", ans.address or ans.cname,
         " type:", ans.type, " class:", ans.class,
         " ttl:", ans.ttl)
end

这个没有任何输出。

我直接用dig查是可以的:


请教下,是什么原因呢,非常感激?



hjy...@gmail.com

unread,
May 10, 2016, 11:12:53 AM5/10/16
to openresty


在 2016年5月10日星期二 UTC+8下午7:21:23,hjy...@gmail.com写道:
补充下,版本是最新的openresty/1.9.7.4,而且查www.baidu.com的A记录是没问题的
 

hjy...@gmail.com

unread,
May 10, 2016, 11:30:42 AM5/10/16
to openresty
自己解决了,没仔细看文档,原来是这行出错了:

local answers, err = r:query("145.108.181.220.in-addr.arpa", TYPE_PTR)
应该是这样:
local answers, err = r:query("145.108.181.220.in-addr.arpa", { qtype = r.TYPE_PTR })
多谢openresty,谢谢春哥 :-)



在 2016年5月10日星期二 UTC+8下午7:21:23,hjy...@gmail.com写道:
用下面这段代码,来反查一个百度IP 220.181.108.145 的域名,查询失败:
Reply all
Reply to author
Forward
0 new messages