我需要获取运行我的Ruby脚本的主机的完全扩展主机名。在Perl中,我使用了Sys :: Hostname :: Long,结果很好。谷歌似乎建议我应该在ruby中使用Socket.hostname,但这只是返回节点名,而不是完整的主机名。如何在Ruby中获取当前主机的FQDN?
13
A
回答
20
这似乎工作:
hostname = Socket.gethostbyname(Socket.gethostname).first
-5
5
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的设置一个合理的假设(可能在盒子的外部)。
+0
+1,这将至少适用于* nix衍生物 – Shirkrin 2012-08-21 05:55:57
相关问题
- 1. Powershell:获取FQDN主机名
- 2. 如何在Win32上检索当前主机的FQDN?
- 3. 的FQDN主机名
- 4. 如何在Heroku中获取当前主机名
- 5. ASP.NET MVC获取当前主机
- 6. 从Cray Fortran获取当前主机名
- 7. 在ruby中获取域名主机名
- 8. Ruby on Rails如何获取当前URL?
- 9. 在Ruby中获取当前代码行
- 10. 如何获取Ansible hosts文件中定义的当前机器的主机名?
- 11. 在node.js中获取当前请求的主机名Express
- 12. 在Java中获取FQDN
- 13. 如何在Ruby中获取当前目录的名称?
- 14. 如何使用C#或VB.NET获取当前本地主机名?
- 15. 如何在Ruby on Rails中获取远程主机名?
- 16. 机械化如何获取当前url
- 17. CakePHP 3在视图中获取当前主机
- 18. 如何在Windows中获取当前用户的主目录
- 19. 如何在Ruby中获取当前时间为13位整数?
- 20. 如何在Ruby中获取当前文件和行号?
- 21. 如何在我的手机中获取当前的经纬度
- 22. 使用shell脚本从主机名或FQDN获取IP
- 23. 如何在hosts文件中互换fqdn <->主机名
- 24. 如何在Android中获取手机的当前区域码(LAC)?
- 25. 获取Yii中的当前主题
- 26. 如何获取Ruby中的当前实例模块
- 27. 如何获取Ruby中的当前位置?
- 28. 如何在angular2中获取主机
- 29. 如何在Flex中获取主机ip?
- 30. 如何找到GO(golang)中本地主机的FQDN?
在Mac OS X上,这似乎以小写字母返回主机名:`$ ruby -e'将Socket.gethostbyname(Socket.gethostname).first'xin.local`与bash'hostname'命令`$ hostname XIN.local` – asmaier 2014-05-19 12:29:31