2010-02-05 113 views

回答

22

總有:

require 'socket' 
... 
Socket.gethostname 

我沒有Windows中與得心應手的測試,但該文檔沒有提及它是* nix中具體的。

6

使用反引號和命令hostname

current_host = `hostname` 

這將命令發送到外殼,並返回主機名。至少在Debian Linux,Windows和Solaris上運行。

+5

如果你打算怎麼辦我建議通過初始化程序緩存值,而不是爲每個請求執行fork()。 – 2012-06-14 02:30:05

+0

也適用於Mac OS。 – calasyr 2016-09-16 20:54:35

77

所有你需要做的就是看看你的控制器請求對象:

request.host_with_port 

,或者如果你不想要的端口做什麼,只是

request.host 
+1

這對於如果您試圖解析URL等是有幫助的,但我認爲這個特定的問題與該機器或操作系統的實際名稱有關。 – taelor 2011-09-22 18:11:28

+0

這不會幫助你,如果你想獲得主機的內部名稱 – phoet 2011-11-01 09:30:54