Class: Knj::Ip2location

Inherits:
Object show all
Defined in:
lib/knj/ip2location.rb

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Ip2location

Returns a new instance of Ip2location.



2
3
4
5
6
7
8
# File 'lib/knj/ip2location.rb', line 2

def initialize(args = {})
  @args = args
  @http = Knj::Http.new(
    "host" => "www.ip2location.com",
    "port" => 80
  )
end

Instance Method Details

#lookup(ip) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# 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