当前位置:  开发笔记 > 编程语言 > 正文

如何在Ruby中获取当前主机的FQDN?

如何解决《如何在Ruby中获取当前主机的FQDN?》经验,为你挑选了2个好方法。

我需要获得运行我的Ruby脚本的主机的完全扩展主机名.在Perl中,我使用了Sys :: Hostname :: Long,效果很好.谷歌似乎建议我应该在ruby中使用Socket.hostname,但那只返回节点名,而不是完整的主机名.



1> dvorak..:

这似乎有效:

hostname = Socket.gethostbyname(Socket.gethostname).first 



2> Alexis Lê-Qu..:
hostname = Socket.gethostbyname(Socket.gethostname).first

不建议使用,只有正确设置了反向DNS解析后才能使用.如果需要,此Facter错误有更长的解释.

如果您阅读了代码,您会注意到他们在某种程度上完全回避了这个问题:

fqdn = hostname + domainname

哪里:

hostname = %[hostname]
domainname = %[hostname -f] # minus the first element

这是一个合理的假设,不依赖于DNS的设置(可能在框外).


如果未在计算机上设置域名,则hostname -f也将查询DNS.
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有