18

Rails で自分の IP アドレスを取得するには?

このようにすると、次のようになりました。127.0.0.1

@ip = request.remote_ip

パブリック IP を取得する方法はありますか?

4

6 に答える 6

42

試す:

require 'socket'
ip=Socket.ip_address_list.detect{|intf| intf.ipv4_private?}
ip.ip_address if ip
于 2012-08-10T08:07:18.130 に答える
1

request.env['SERVER_NAME']サーバーベースアドレスを反映したい場合は、うまくいくと思います

于 2016-12-06T11:14:03.113 に答える
0

リクエストはサーバーに対してローカルであるため、「localhost」アドレス、つまり127.0.0.1. インターネット上でホストされているマシンからリクエストすると、リモート サーバーの静的 IP が提供されます。

自分のインターネットの静的 IP が必要な場合は、http://ping.euにアクセスすると、パブリック IP を確認できます。

于 2012-08-10T13:12:12.337 に答える
0

localhost ではなく、IP を使用してページを呼び出します。つまり192.168.2.9:3000、デフォルトの開発環境の場合、次の結果が得られます。

request.env['REMOTE_ADDR']
#=> 192.168.2.9

また:

request.remote_ip 
#=> 192.168.2.9 
于 2012-08-10T08:11:55.280 に答える
0

これを試して:

request.env['REMOTE_ADDR']
于 2012-08-10T07:35:25.523 に答える