class IpResolvers::IpInfoIo

Public Class Methods

new(resolver) click to toggle source
# File lib/dnsign/ip_resolvers/ip_info_io.rb, line 4
def initialize(resolver)
  @resolver = resolver
end

Public Instance Methods

fetch() click to toggle source
# File lib/dnsign/ip_resolvers/ip_info_io.rb, line 8
def fetch
  uri = URI 'http://ipinfo.io/json'

  res = ::Net::HTTP.get_response uri

  if /2../.match res.code
    data = JSON.parse res.body
    data.fetch 'ip'
  else
    raise Error::InvalidResponseFromIpResolverService "Invalid response for #{self.class} with code: #{res.code}; body: #{res.body}"
  end

end