Class: Knj::Ip2location
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ Ip2location
constructor
A new instance of Ip2location.
- #lookup(ip) ⇒ Object
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 |