# File common/lib/symbiosis/host.rb, line 162
    def self.backup_spaces(ips = self.ip_addresses)
      # No Bytemark IP found?
      ips = [ips] unless ips.is_a?(Array)
      spaces = []
      ips.each do |ip|
        begin
          ip = IPAddr.new(ip.to_s) unless ip.is_a?(IPAddr)
        rescue ArgumentError => err
          # This will be caught in the next conditional.
        end

        # Check to make sure we have an IP
        if !ip.is_a?(IPAddr)
          warn "'#{ip}' is not an IP Address." if $VERBOSE
          next
        end

        # Make sure it is a Bytemark IP
        if !self.is_bytemark_ip?(ip)
          warn "IP #{ip} is not in the Bytemark ranges." if $VERBOSE
          next
        end

        # Form the reverse lookup string
        lookup = ip.reverse.gsub(/(ip6|in-addr).arpa\Z/,"backup-reverse.bytemark.co.uk")

        warn "Doing lookup of #{lookup} for #{ip}..." if $VERBOSE

        # Do the lookup
        begin
          Resolv::DNS.open do |dns|
            res = dns.getresources(lookup, Resolv::DNS::Resource::IN::TXT)
            warn "DNS returned #{res.length} results." if $VERBOSE
            spaces += res.collect{|rr| rr.strings}.flatten
          end
        rescue Resolv::ResolvTimeout, Resolv::ResolvError => err
          warn "Look up of #{lookup} failed -- #{err.to_s}"
        end
      end
      spaces.uniq
    end