Sha256: 392a7c115ea93d7eeb20abde07b0896a3698a2639a42fe364030876cd53ff6da
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
require "active_record" class Ipligence::Client attr_reader :connection def initialize(opts) @connection = Ipligence::DBConnection.establish_connection(opts).connection end def data(ip) result = query(ip) { :ip_from => result["ip_from"], :ip_to => result["ip_to"], :country_code => result["country_code"], :country_name => result["country_name"], :continent_code => result["continent_code"], :continent_name => result["continent_name"], :time_zone => result["time_zone"], :region_code => result["region_code"], :region_name => result["region_name"], :owner => result["owner"], :city_name => result["city_name"], :county_name => result["county_name"], :post_code => result["post_code"], :area_code => result["area_code"], :metro_code => result["metro_code"], :latitude => result["latitude"], :longitude => result["longitude"] } end private def query(ip) long_ip = Ipligence::Utils.convert_dotted_to_long(ip).to_s data_fields = "ip_from, ip_to, country_code, country_name, continent_code, continent_name, time_zone, region_code, region_name, owner, city_name, county_name, post_code, area_code, metro_code, latitude, longitude" sql_query = "select #{data_fields} from ipligence2 where ip_from <= '#{long_ip}' and '#{long_ip}' <= ip_to" connection.exec_query(sql_query).first end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ipligence-0.0.7 | lib/ipligence/client.rb |