Module: Fluent::Geoip
- Included in:
- VikiInput
- Defined in:
- lib/fluent/plugin/geoip.rb
Instance Method Summary collapse
- #city_of_ip(ip) ⇒ Object
- #country_code_of_ip(ip) ⇒ Object
- #geoip_db_path ⇒ Object
- #global_geoip ⇒ Object
Instance Method Details
#city_of_ip(ip) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/fluent/plugin/geoip.rb', line 10 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 |
#country_code_of_ip(ip) ⇒ Object
5 6 7 8 |
# File 'lib/fluent/plugin/geoip.rb', line 5 def country_code_of_ip(ip) iso_code = global_geoip.lookup(ip).country.iso_code iso_code && iso_code.downcase end |
#geoip_db_path ⇒ Object
30 31 32 |
# File 'lib/fluent/plugin/geoip.rb', line 30 def geoip_db_path '/etc/GeoIP2-City.mmdb' end |
#global_geoip ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/fluent/plugin/geoip.rb', line 22 def global_geoip if Time.now.strftime('%M:%S') == '01:00' @@global_geoip = ::MaxMindDB.new(geoip_db_path) else @@global_geoip ||= ::MaxMindDB.new(geoip_db_path) end end |