1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- module Service
- class GeoIp
- include ApplicationLib
- =begin
- lookup location based on ip or hostname
- result = Service::GeoIp.location('172.0.0.1')
- returns
- result = {
- "ip" => "172.0.0.1"
- "country_code" => "DE",
- "country_name" => "Germany",
- "region_code" => "05",
- "region_name" => "Hessen",
- "city" => "Frankfurt Am Main"
- "zipcode" => "12345",
- "latitude" => 50.1167,
- "longitude" => 8.6833,
- "metro_code" => "",
- "areacode" => ""
- }
- =end
- def self.location(address)
- # load backend
- backend = load_adapter_by_setting('geo_ip_backend')
- return if !backend
- # db lookup
- backend.location(address)
- end
- end
- end
|