code: def get_listen_addr(self):
      ip, ifce = find_listen_address()
  
      if sys.platform == "darwin":
          # use the same hostname for both master and non master process
          # because docker.for.mac.localhost resolves to different inside
          # and outside docker container. "docker.for.mac.localhost" is
          # the name that doesn't change in and outside the container.
          return "docker.for.mac.localhost", 0, ifce
  
      if not isinstance(fiber.current_process(), fiber.Process):
          # not inside docker
          ifce = "docker0"
          ip = find_ip_by_net_interface(ifce)
  
      if ip is None:
          raise mp.ProcessError(
              "Can't find a usable IPv4 address to listen. ifce_name: {}, "
              "ifces: {}".format(ifce, psutil.net_if_addrs())
          )
      # use 0 to bind to a random free port number
      return ip, 0, ifce
  
imports: import logging
  import multiprocessing
  import os
  import sys
  import threading
  import time
  import uuid
  from os.path import expanduser
  import docker
  import psutil
  import requests
  import fiber
  import fiber.core
  import fiber.config
  from fiber.core import ProcessStatus
  from fiber.util import find_ip_by_net_interface, find_listen_address
label_desc: Use image node_id 8 for calling the Backend obj's underlying member method code with example usage: obj.get_listen_addr() and returns: ip,  int,  ifce, str,  int,  ifce