Class: ActionDispatch::RemoteIp

Inherits:
Object
  • Object
show all
Defined in:
lib/action_dispatch/middleware/remote_ip.rb

Defined Under Namespace

Classes: IpSpoofAttackError, RemoteIpGetter

Instance Method Summary collapse

Constructor Details

#initialize(app, check_ip_spoofing = true, trusted_proxies = nil) ⇒ RemoteIp

Returns a new instance of RemoteIp.



38
39
40
41
42
43
44
# File 'lib/action_dispatch/middleware/remote_ip.rb', line 38

def initialize(app, check_ip_spoofing = true, trusted_proxies = nil)
  @app = app
  @check_ip_spoofing = check_ip_spoofing
  regex = '(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)'
  regex << "|(#{trusted_proxies})" if trusted_proxies
  @trusted_proxies = Regexp.new(regex, "i")
end

Instance Method Details

#call(env) ⇒ Object



46
47
48
49
# File 'lib/action_dispatch/middleware/remote_ip.rb', line 46

def call(env)
  env["action_dispatch.remote_ip"] = RemoteIpGetter.new(env, @check_ip_spoofing, @trusted_proxies)
  @app.call(env)
end