class Knj::Ip2location

Public Class Methods

new(args = {}) click to toggle source
# File lib/knj/ip2location.rb, line 2
def initialize(args = {})
  @args = args
  @http = Knj::Http.new(
    "host" => "www.ip2location.com",
    "port" => 80
  )
end

Public Instance Methods

lookup(ip) click to toggle source
# File lib/knj/ip2location.rb, line 10
def lookup(ip)
  raise "Invalid IP: #{ip}." if !ip.to_s.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/)
  
  html = @http.get("/#{ip}")["data"]
  ret = {}
  
  html.scan(/<span id="dgLookup__ctl2_lblI(.+?)">(.+?)<\/span>/) do |match|
    ret[match[0]] = match[1]
  end
  
  return ret
end