21 lines
755 B
Ruby
21 lines
755 B
Ruby
#coding=utf-8
|
|
#
|
|
require 'socket'
|
|
|
|
class ResponseIp
|
|
def initialize(app)
|
|
@app = app
|
|
end
|
|
|
|
def ip
|
|
addr = Socket.ip_address_list.detect{|intf| intf.ipv4_private?}.ip_address rescue
|
|
addr || ''
|
|
end
|
|
|
|
def call(env)
|
|
status, headers, body = @app.call(env)
|
|
headers["X-response-ip"] = ip
|
|
[status, headers, body]
|
|
end
|
|
end
|