web-dev-qa-db-ja.com

Rails:クライアントIPアドレスを取得します

Railsでは、サーバーに接続しているクライアントのIPアドレスを取得する最良の方法は何ですか?

ここに私が見つけた2つの方法があります:

request.remote_ip
request.env['HTTP_X_REAL_IP']
161
ma11hew28

シンプルで機能するrequest.remote_ipを使用します。別の方法が必要な理由は何ですか?

以下を参照してください。 ローカルRails開発環境で実際のIPアドレスを取得 クライアントサーバーIPで実行できる他のいくつかのことについて。

298
loosecannon

request.remote_ipは、利用可能なすべてのIPアドレス情報の解釈であり、最善の推測を行います。変数に直接アクセスする場合、正しい優先順位で変数をテストする責任があります。プロキシは、異なる名前の環境変数を作成するいくつかのヘッダーを導入します。

42
tadman

コマンドを使用してクライアントIPを取得します。

request.remote_ip
7
puneet18

新しいRailsとDevise gemに興味を持ち、使用している場合:Deviseの「追跡可能な」オプションには、usersテーブルにcurrent/last_sign_in_ipの列が含まれます。

0
Nathan Pierce

request.env['HTTP_X_FORWARDED_FOR']request.remote_ipを返す場合にも、127.0.0.1が非常に役立つことがわかりました。

0
alikk