--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
https://github.com/openresty/lua-resty-dns#reverse_queryg_linux是要的这个么?ip -> hostname逆解析 完全异步的cosocket实现
2017-08-09 9:36 GMT+08:00 tokers <zcha...@gmail.com>:
Hi!nginx 有个变量 $hostname 的,你可以通过ngx.var.hostname 来获取,不过有使用阶段限制(没法在 init_by_lua 和 init_worker_by_lua 使用)如果你想要在这两个阶段使用,建议你使用 ffi,自己调用 gethostname。
On Tuesday, August 8, 2017 at 4:52:35 PM UTC+8, g_l...@qq.com wrote:f=require("socket")print(f.dns.tohostname('8.8.8.8'))google-public-dns-a.google.com table: 0x7f9a33d01cb0以上功能 获取 hostname ,怎么实现 除 linux 命令 host, 第3方的 socket 库外, 最好是 春哥大神写的库。
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
local resolver = require "resty.dns.resolver" local ptr4 = resolver.arpa_str("1.2.3.4")
这个我昨天测试过了。。不能达到我的要求。。和 host 命令出来的效果 区别很大。
我只获取 客服端的主机名字。
g_linux是要的这个么?ip -> hostname逆解析 完全异步的cosocket实现
2017-08-09 9:36 GMT+08:00 tokers <zcha...@gmail.com>:
Hi!nginx 有个变量 $hostname 的,你可以通过ngx.var.hostname 来获取,不过有使用阶段限制(没法在 init_by_lua 和 init_worker_by_lua 使用)如果你想要在这两个阶段使用,建议你使用 ffi,自己调用 gethostname。
On Tuesday, August 8, 2017 at 4:52:35 PM UTC+8, g_l...@qq.com wrote:f=require("socket")print(f.dns.tohostname('8.8.8.8'))google-public-dns-a.google.com table: 0x7f9a33d01cb0以上功能 获取 hostname ,怎么实现 除 linux 命令 host, 第3方的 socket 库外, 最好是 春哥大神写的库。
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
syntax: answers, err = r:reverse_query(address)
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
您未获授权,无法查看此网页。
按照文档所述,应该使用reverse_query方法:
print_r dump:+1+section [1] <number>+ptrdname [google-public-dns-a.google.com] <string>+type [12] <number>+class [1] <number>+name [8.8.8.8.in-addr.arpa] <string>+ttl [86399] <number>
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
local function print_r(root,func)
local cache = { [root] = "." }
local function _dump(t,space,name)
local temp = {}
for k,v in pairs(t) do
local key = tostring(k)
if cache[v] then
table.insert(temp,"+" .. key .. " {" .. cache[v].."}")
elseif type(v) == "table" then
local new_key = name .. "." .. key
cache[v] = new_key
table.insert(temp,"+" .. key .. _dump(v,space ..
(next(t,k) and "|" or " " ).. string.rep(" ",#key),new_key))
else
local str=tostring(v)
--str=string.gsub(str,'\n','\\n')
--table.insert(temp,"+" .. key .. " [" .. str .."]")
table.insert(temp,"+" .. key .. " [" .. str .."]".." <"..type(v)..">")
end
end
return table.concat(temp,"\n"..space)
end
if type(func)=="function" then
func("print_r dump:\n".._dump(root, "",""))
else
print("print_r dump:\n".._dump(root, "",""))
end
end
local resolver = require "resty.resolver"
local r, err = resolver:new{
nameservers = { "8.8.8.8" }
}
if not r then
ngx.say("failed to instantiate resolver: ", err)
return
end
answers, err = r:reverse_query("8.8.8.8")
if type(answers)=="table" then
print_r(answers,ngx.say)
end
ngx.say(tostring(err))
body_filter_by_lua_block{local resolver = require "resty.dns.resolver"answers, err = resolver:reverse_query("8.8.8.8")
ngx.arg[1]=type(answers)}
--
local resolver = require "resty.resolver"local r, err = resolver:new{nameservers = { "8.8.8.8" }}if not r thenngx.say("failed to instantiate resolver: ", err)returnendanswers, err = r:reverse_query("8.8.8.8")是因为代码使用有误才会异常...
2017-08-09 10:37 GMT+08:00 <g_l...@qq.com>:
body_filter_by_lua_block{local resolver = require "resty.dns.resolver"answers, err = resolver:reverse_query("8.8.8.8")ngx.arg[1]=type(answers)}难道不能放在 body_filter_by_lua_block?
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com