Sha256: 947e343053a5fbbc415d09e725280fb29b992ef53824dc011ccaa8d16272c61c

Contents?: true

Size: 490 Bytes

Versions: 101

Compression:

Stored size: 490 Bytes

Contents

class Knj::Ip2location
  def initialize(args = {})
    @args = args
    @http = Knj::Http.new(
      "host" => "www.ip2location.com",
      "port" => 80
    )
  end
  
  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
end

Version data entries

101 entries across 101 versions & 1 rubygems

Version Path
knjrbfw-0.0.29 lib/knj/ip2location.rb
knjrbfw-0.0.28 lib/knj/ip2location.rb
knjrbfw-0.0.27 lib/knj/ip2location.rb
knjrbfw-0.0.26 lib/knj/ip2location.rb
knjrbfw-0.0.25 lib/knj/ip2location.rb
knjrbfw-0.0.24 lib/knj/ip2location.rb
knjrbfw-0.0.23 lib/knj/ip2location.rb
knjrbfw-0.0.22 lib/knj/ip2location.rb
knjrbfw-0.0.21 lib/knj/ip2location.rb
knjrbfw-0.0.20 lib/knj/ip2location.rb
knjrbfw-0.0.19 lib/knj/ip2location.rb
knjrbfw-0.0.18 lib/knj/ip2location.rb
knjrbfw-0.0.17 lib/knj/ip2location.rb
knjrbfw-0.0.16 lib/knj/ip2location.rb
knjrbfw-0.0.15 lib/knj/ip2location.rb
knjrbfw-0.0.14 lib/knj/ip2location.rb
knjrbfw-0.0.13 lib/knj/ip2location.rb
knjrbfw-0.0.12 lib/knj/ip2location.rb
knjrbfw-0.0.11 lib/knj/ip2location.rb
knjrbfw-0.0.10 lib/knj/ip2location.rb