Sha256: 3ebfe3ced6d7c21608df2d54954d013546cadcc5fdae25bd0af4bfe90cc03a06

Contents?: true

Size: 775 Bytes

Versions: 3

Compression:

Stored size: 775 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
      '/etc/GeoIP2-City.mmdb'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fluent-plugin-viki-0.1.3 lib/fluent/plugin/geoip.rb
fluent-plugin-viki-0.1.2 lib/fluent/plugin/geoip.rb
fluent-plugin-viki-0.1.1 lib/fluent/plugin/geoip.rb