1. ホーム
  2. ruby

[解決済み] Ruby on Railsでホスト名やIPを取得する

2022-02-15 05:42:27

質問

Ruby on Railsアプリをメンテナンスしているところですが、使用しているマシンのホスト名やIPアドレスを簡単に調べる方法を探しています(VMなので、新しいインスタンスはホスト名やIPアドレスが異なる可能性があるため)。Ruby on Railsでこれを行う迅速かつ簡単な方法はありますか?

編集:以下の回答は正しいのですが、クレイグが提供した明確化は有用です(回答に含まれる提供リンクも参照)。

<ブロッククオート

以下のコードは 接続やパケットの送信を行います(宛先は 64.233.187.99はgoogleです)。UDPはステートレスプロトコルなので、connect() 単にシステムコールを行い パケットをどのようにルーティングするか アドレスと インターフェイス(したがってIPアドレス) は、バインドすべき相手先として ファミリ(AF_INET)を含む配列です。 ローカルポート、ローカルアドレス(これは は、私たちが欲しいものです)。

解決方法は?

から coderrr.wordpress.com :

require 'socket'

def local_ip
  orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true  # turn off reverse DNS resolution temporarily

  UDPSocket.open do |s|
    s.connect '64.233.187.99', 1
    s.addr.last
  end
ensure
  Socket.do_not_reverse_lookup = orig
end

# irb:0> local_ip
# => "192.168.0.127"