Sha256: a0ea483484ca5b87b00d6de18bc40a0eec5d601d240b79eb477d71399fb5c84b

Contents?: true

Size: 796 Bytes

Versions: 1

Compression:

Stored size: 796 Bytes

Contents

require 'maxminddb'

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

1 entries across 1 versions & 1 rubygems

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