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取得

webサーバーの種類にもよりますが、以下のコードで取得すること可能です。

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"] || request.remote_ip

IP表示

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

class TopController < ApplicationController
  def index
    @remote_ip = request.env["HTTP_X_FORWARDED_FOR"] || request.remote_ip
  end
end

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

<h1>TEST SITE</h1>
<p>アクセス元</p>
<%= @remote_ip %>

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

root to: "top#index"

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