code: def get_ips(self, instance_id):
          
          self._load_instance(instance_id)
          instance = self._load_instance(instance_id)
          IPs = [ip for ip in (instance.private_ip_address, instance.ip_address) if ip]
  
          # We also need to check if there is any floating IP associated
          if self.request_floating_ip and not self._vpc:
              # We need to list the floating IPs for this instance
              floating_ips = [ip for ip in self._ec2_connection.get_all_addresses() if ip.instance_id == instance.id]
              if not floating_ips:
                  log.debug("Public ip address has to be assigned through "
                            "elasticluster.")
                  ip = self._allocate_address(instance)
                  # This is probably the preferred IP we want to use
                  IPs.insert(0, ip)
              else:
                  IPs = [ip.public_ip for ip in floating_ips] + IPs
  
          return list(set(IPs))
docs: Retrieves the private and public ip addresses for a given instance.
  
          :return: list (ips)