Class: Trackdown::IpLocator

Inherits:
Object
  • Object
show all
Defined in:
lib/trackdown/ip_locator.rb

Class Method Summary collapse

Class Method Details

.locate(ip, request: nil) ⇒ LocationResult

Locate an IP address using the configured provider

Parameters:

  • ip (String)

    The IP address to locate

  • request (ActionDispatch::Request, nil) (defaults to: nil)

    Optional Rails request object for Cloudflare provider

Returns:



16
17
18
19
20
21
22
23
24
25
# File 'lib/trackdown/ip_locator.rb', line 16

def locate(ip, request: nil)
  IpValidator.validate!(ip)

  if Trackdown.configuration.reject_private_ips? && IpValidator.private_ip?(ip)
    raise IpValidator::InvalidIpError, "Private IP addresses are not allowed"
  end

  provider = get_provider
  provider.locate(ip, request: request)
end