Ruby on Railsを使用してクライアントIPとサーバーIPを取得する方法を誰でも助けていただけますか?
ありがとう: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
コントローラーから:
request.remote_ip
Mongrelの前でApacheを使用している場合、remote_ipはリクエストの送信元アドレスを返します。この場合、Apache Webサーバーがリクエストを作成しているため、ローカルホストになります。
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
サーバーIPを取得するには、以下を参照してください。