Sha256: dafd4a72dc39bc31670d9d2cf089017f87455616d16f97046b0c0d4081d53943
Contents?: true
Size: 1.03 KB
Versions: 27
Compression:
Stored size: 1.03 KB
Contents
require 'net/http' require 'uri' module Fog class CurrentMachine @@lock = Mutex.new AMAZON_AWS_CHECK_IP = 'http://checkip.amazonaws.com' def self.ip_address= ip_address @@lock.synchronize do @@ip_address = ip_address end end # Get the ip address of the machine from which this command is run. It is # recommended that you surround calls to this function with a timeout block # to ensure optimum performance in the case where the amazonaws checkip # service is unavailable. # # @example Get the current ip address # begin # Timeout::timeout(5) do # puts "Your ip address is #{Fog::CurrentMachine.ip_address}" # end # rescue Timeout::Error # puts "Service timeout" # end # # @raise [Net::HTTPExceptions] if the net/http request fails. def self.ip_address @@lock.synchronize do @@ip_address ||= Net::HTTP \ .get_response(URI.parse(AMAZON_AWS_CHECK_IP)) \ .body.chomp end end end end
Version data entries
27 entries across 27 versions & 7 rubygems