Module: Rack::CloudflareMiddleware

Defined in:
lib/rack/cloudflare_middleware.rb,
lib/rack/cloudflare_middleware/version.rb,
lib/rack/cloudflare_middleware/deny_others.rb,
lib/rack/cloudflare_middleware/trusted_ips.rb,
lib/rack/cloudflare_middleware/rewrite_remote_addr.rb

Defined Under Namespace

Classes: DenyOthers, RewriteRemoteAddr, TrustedIps

Constant Summary collapse

VERSION =
"3.0.0"

Class Method Summary collapse

Class Method Details

.get_remote_addr(env, trust_xff_if_private) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/rack/cloudflare_middleware.rb', line 12

def self.get_remote_addr(env, trust_xff_if_private)
  if trust_xff_if_private && IPAddr.new(env["REMOTE_ADDR"]).private? &&
      !env["HTTP_X_FORWARDED_FOR"].nil? && env["HTTP_X_FORWARDED_FOR"] != ""
    IPAddr.new(env["HTTP_X_FORWARDED_FOR"].split(",")&.last&.strip)
  else
    IPAddr.new(env["REMOTE_ADDR"])
  end
end