code: def find_unused_port(start_port, end_port, host="127.0.0.1", socket_type="TCP", ignore_ports=None):
          
  
          if end_port < start_port:
              raise HTTPConflict(text="Invalid port range {}-{}".format(start_port, end_port))
  
          last_exception = None
          for port in range(start_port, end_port + 1):
              if ignore_ports and (port in ignore_ports or port in BANNED_PORTS):
                  continue
  
              try:
                  PortManager._check_port(host, port, socket_type)
                  if host != "0.0.0.0":
                      PortManager._check_port("0.0.0.0", port, socket_type)
                  return port
              except OSError as e:
                  last_exception = e
                  if port + 1 == end_port:
                      break
                  else:
                      continue
  
          raise HTTPConflict(text="Could not find a free port between {} and {} on host {}, last exception: {}".format(start_port,
                                                                                                                       end_port,
                                                                                                                       host,
                                                                                                                       last_exception))
docs: Finds an unused port in a range.
  
          :param start_port: first port in the range
          :param end_port: last port in the range
          :param host: host/address for bind()
          :param socket_type: TCP (default) or UDP
          :param ignore_ports: list of port to ignore within the range