Ruby on Rails を使用してクライアント IP とサーバー IP を取得する方法を教えてください。
49442 次
2 に答える
85
コントローラーから:
request.remote_ip
mongrel の前で apache を使用している場合、remote_ip はリクエストの送信元アドレスを返します。この場合は、Apache Web サーバーがリクエストを行っているため、ローカル ホストになります。代わりに、これをコントローラーに入れます。
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
サーバー IP を取得するには、以下を参照してください。
于 2009-08-04T11:34:32.150 に答える
35
ありがとう: karim79 と Titanous。
コントローラーにコードを書く
クライアント IP の場合:
request.remote_ip
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
サーバー IP の場合:
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
于 2009-08-04T11:49:19.563 に答える