Sha256: e1e4bd00e29d983f4467e39d31ef1b0d15e201ce4e8bbe5575b2b17c5f355a38

Contents?: true

Size: 1.38 KB

Versions: 27

Compression:

Stored size: 1.38 KB

Contents

require 'geoip'

module Dap
module Filter

module GeoIPLibrary
  GEOIP_DIRS = [ 
    File.expand_path( File.join( File.dirname(__FILE__), "..", "..", "..", "data")),
    "/var/lib/geoip"
  ]
  GEOIP_CITY = %W{ geoip.dat geoip_city.dat GeoCity.dat IP_V4_CITY.dat GeoCityLite.dat }
  GEOIP_ORGS = %W{ geoip_org.dat IP_V4_ORG.dat  }

  @@geo_city = nil
  @@geo_orgs = nil

  GEOIP_DIRS.each do |d|
    GEOIP_CITY.each do |f|
      path = File.join(d, f)
      if ::File.exist?(path)
        @@geo_city = GeoIP::City.new(path)
        break
      end
    end
    GEOIP_ORGS.each do |f|
      path = File.join(d, f)
      if ::File.exist?( path )
        @@geo_orgs = GeoIP::Organization.new(path)
        break
      end
    end  
  end  
end


#
# Add GeoIP tags using the MaxMind GeoIP::City 
#
class FilterGeoIP
  include BaseDecoder
  include GeoIPLibrary
  def decode(ip)
    return unless @@geo_city
    geo_hash = @@geo_city.look_up(ip)
    return unless geo_hash
    ret = {}
    geo_hash.each_pair do |k,v|
      next unless k
      ret[k.to_s] = v.to_s
    end
    
    ret
  end
end

#
# Add GeoIP tags using the MaxMind GeoIP::Organization database
#
class FilterGeoIPOrg
  include BaseDecoder
  include GeoIPLibrary
  def decode(ip)
    return unless @@geo_orgs
    geo_hash = @@geo_orgs.look_up(ip)
    return unless (geo_hash and geo_hash[:name])
    { :org => geo_hash[:name] }
  end
end


end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
dap-0.1.6 lib/dap/filter/geoip.rb
dap-0.1.5 lib/dap/filter/geoip.rb
dap-0.1.4 lib/dap/filter/geoip.rb
dap-0.1.3 lib/dap/filter/geoip.rb
dap-0.1.2 lib/dap/filter/geoip.rb
dap-0.1.1 lib/dap/filter/geoip.rb
dap-0.1.0 lib/dap/filter/geoip.rb
dap-0.0.20 lib/dap/filter/geoip.rb
dap-0.0.19 lib/dap/filter/geoip.rb
dap-0.0.18 lib/dap/filter/geoip.rb
dap-0.0.17 lib/dap/filter/geoip.rb
dap-0.0.16 lib/dap/filter/geoip.rb
dap-0.0.15 lib/dap/filter/geoip.rb
dap-0.0.14 lib/dap/filter/geoip.rb
dap-0.0.13 lib/dap/filter/geoip.rb
dap-0.0.12 lib/dap/filter/geoip.rb
dap-0.0.11 lib/dap/filter/geoip.rb
dap-0.0.10 lib/dap/filter/geoip.rb
dap-0.0.9 lib/dap/filter/geoip.rb
dap-0.0.8 lib/dap/filter/geoip.rb