从Rails控制器获取主机名

时间:2010-02-05 16:57:11

标签: ruby-on-rails hostname

我正在尝试从控制器获取运行rails应用程序的计算机的主机名。

考虑到它应该适用于Windows和Linux,最好的方法是什么?

4 个答案:

答案 0 :(得分:81)

您所要做的就是查看控制器中的请求对象:

request.host_with_port

或者如果你不想要这个端口,只需

request.host

答案 1 :(得分:27)

总是:

require 'socket'
...
Socket.gethostname

我没有方便用来测试它的Windows盒子,但是文档没有提到它是* nix特定的。

注意:Rails 4不需要require语句,也可能是其他Rails版本。如果您在没有Rails的情况下使用纯Ruby,则需要它。

答案 2 :(得分:6)

使用反引号和命令hostname

current_host = `hostname`

这会将命令发送到shell,并返回主机名。至少可以使用:Debian Linux,Windows,Solaris。

答案 3 :(得分:0)

如果您需要从协议到端口的完整域路径,请尝试:

df3 <-
structure(c(5.33977753674163, 16.7094706871338, 4.23758718121094, 
12.6275105554044, 9.04107044295747, -0.685470517077967, 16.7897917316432, 
-4.25347907370252, 13.4032906994389, 12.4040556704001, 2.51260901116279, 
16.0324845504096, 5.50096403268869, 12.0305530420621, 11.8057011378596, 
1.00715758856066, 15.6131178756706, 2.48509953100854, 11.9807372642204, 
7.93896000301356), .Dim = 5:4, .Dimnames = list(c("hsa-let-7a-3p", 
"hsa-let-7a-5p", "hsa-let-7b-3p", "hsa-let-7b-5p", "hsa-let-7c-5p"
), c("9446", "9450", "9473", "9484")))