13

Ruby スクリプトが実行されているホストの完全に展開されたホスト名を取得する必要があります。Perl では、Sys::Hostname::Long を使用して良好な結果を得ました。Google は、Ruby で Socket.hostname を使用する必要があることを示唆しているようですが、完全なホスト名ではなく、ノード名のみが返されます。

4

3 に答える 3

20

これはうまくいくようです:

hostname = Socket.gethostbyname(Socket.gethostname).first 
于 2008-09-30T02:43:19.710 に答える
6
hostname = Socket.gethostbyname(Socket.gethostname).first

推奨されておらず、逆引きDNS解決が適切に設定されている場合にのみ機能します。このFacterのバグには、必要に応じてより長い説明があります。

ファクトコードを読むと、次のように言って問題を完全に回避していることに気付くでしょう。

fqdn = hostname + domainname

どこ:

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

これは、DNSの設定(ボックスの外部にある場合があります)に依存しない合理的な仮定です。

于 2012-08-20T22:51:58.630 に答える
-5

少し単純になる可能性があります => hostname = Socket.gethostname

于 2009-12-01T07:59:01.273 に答える