Sha256: 51f6f78597ff7a86198861839ff36ac1519dc4caa2f6236930e53a1472224819

Contents?: true

Size: 791 Bytes

Versions: 1

Compression:

Stored size: 791 Bytes

Contents

module Fluent
  module Geoip
    def country_code_of_ip(ip)
      iso_code = global_geoip.lookup(ip).country.iso_code
      iso_code && iso_code.downcase
    end

    def city_of_ip(ip)
      city = global_geoip.lookup(ip)
      record = {}
      record['dma_code'] = city.location.metro_code
      record['city_name'] = city.city && city.city.name
      record['latitude'] = city.location.latitude.to_s
      record['longitude'] = city.location.longitude.to_s
      record['postal_code'] = city.postal.code
      record['region_name'] = city.subdivisions.first && city.subdivisions.first.iso_code
      record
    end

    def global_geoip
      @@global_geoip ||= ::MaxMindDB.new(geoip_db_path)
    end

    def geoip_db_path
      '/usr/local/var/GeoIP/GeoIP2-City.mmdb'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-plugin-viki-0.1.0 lib/fluent/plugin/geoip.rb