Class: Castle::Extractors::IP
- Inherits:
-
Object
- Object
- Castle::Extractors::IP
- Defined in:
- lib/castle/extractors/ip.rb
Overview
used for extraction of ip from the request
Instance Method Summary collapse
-
#call ⇒ String
Order of headers: .…
-
#initialize(headers) ⇒ IP
constructor
A new instance of IP.
Constructor Details
#initialize(headers) ⇒ IP
Returns a new instance of IP.
13 14 15 16 17 |
# File 'lib/castle/extractors/ip.rb', line 13 def initialize(headers) @headers = headers @ip_headers = Castle.config.ip_headers.empty? ? DEFAULT : Castle.config.ip_headers @proxies = Castle.config.trusted_proxies + Castle::Configuration::TRUSTED_PROXIES end |
Instance Method Details
#call ⇒ String
Order of headers:
.... list of headers defined by ip_headers
X-Forwarded-For
Remote-Addr
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/castle/extractors/ip.rb', line 24 def call all_ips = [] @ip_headers.each do |ip_header| ips = ips_from(ip_header) ip_value = remove_proxies(ips).last return ip_value if ip_value all_ips.push(*ips) end # fallback to first whatever ip all_ips.first end |