geo_ip.rb 780 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
  2. class GeoIp
  3. include ApplicationLib
  4. =begin
  5. lookup location based on ip or hostname
  6. result = GeoIp.location( '172.0.0.1' )
  7. returns
  8. result = {
  9. "ip" => "172.0.0.1"
  10. "country_code" => "DE",
  11. "country_name" => "Germany",
  12. "region_code" => "05",
  13. "region_name" => "Hessen",
  14. "city" => "Frankfurt Am Main"
  15. "zipcode" => "12345",
  16. "latitude" => 50.1167,
  17. "longitude" => 8.6833,
  18. "metro_code" => "",
  19. "areacode" => ""
  20. }
  21. =end
  22. def self.location(address)
  23. # load backend
  24. backend = self.load_adapter_by_setting( 'geo_ip_backend' )
  25. return if !backend
  26. # db lookup
  27. backend.location(address)
  28. end
  29. end