我需要获取运行Ruby脚本的主机的完全展开的主机名。在Perl中,我使用了Sys::Hostname::Long,效果很好。谷歌似乎建议我在ruby中使用Socket.hostname,但这只返回了节点名,而不是完整的主机名。
发布于 2008-09-30 02:43:20
这似乎起作用了:
hostname = Socket.gethostbyname(Socket.gethostname).first 发布于 2012-08-21 06:51:59
hostname = Socket.gethostbyname(Socket.gethostname).first不推荐使用,并且只有在正确设置反向DNS解析后才能正常工作。如果需要,This Facter bug有更长的解释。
如果您阅读了facter代码,您会注意到它们有点sidestep the issue altogether by saying
fqdn = hostname + domainname其中:
hostname = %[hostname]
domainname = %[hostname -f] # minus the first element这是一个合理的假设,它不依赖于DNS的设置(可能在机箱外部)。
发布于 2009-12-01 15:59:01
可以稍微简单一点=>主机名= Socket.gethostname
https://stackoverflow.com/questions/151545
复制相似问题