rails6 プライベートIPを表示する

rails6 プライベートIPを表示する

rails6でプライベートIPを表示するまでの手順を記述してます。Railsのバージョンは6.1.1を使用してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • Ruby 2.7.2
  • Rails 6.1.1
  • rbenv 1.1.2-40-g62d7798

プライベートIP取得

以下のコードで取得すること可能です。

@remote_ip = Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address

プライベートIP表示

任意のControllerを以下のように編集して

class TopController < ApplicationController
  def index
   @hostname = Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address
  end
end

view側を以下のように編集します。
※「routes.rb」にはルーティングが設定してあるものとします。

<h1>TEST SITE</h1>
<p>ホストip</p>
<%= @hostname %>

ここでは「routes.rb」は、以下の通りに編集してます。

root to: "top#index"

アクセスすると、IPが取得できていることが確認できます。