code: def _load_ips(suppress_exceptions=True):
      """load the IPs that point to this machine
  
      This function will only ever be called once.
  
      It will use netifaces to do it quickly if available.
      Then it will fallback on parsing the output of ifconfig / ip addr / ipconfig, as appropriate.
      Finally, it will fallback on socket.gethostbyname_ex, which can be slow.
      """
  
      try:
          # first priority, use netifaces
          try:
              return _load_ips_netifaces()
          except ImportError:
              pass
  
          # second priority, parse subprocess output (how reliable is this?)
  
          if os.name == "nt":
              try:
                  return _load_ips_ipconfig()
              except (IOError, NoIPAddresses):
                  pass
          else:
              try:
                  return _load_ips_ip()
              except (IOError, OSError, NoIPAddresses):
                  pass
              try:
                  return _load_ips_ifconfig()
              except (IOError, OSError, NoIPAddresses):
                  pass
  
          # lowest priority, use gethostbyname
  
          return _load_ips_gethostbyname()
      except Exception as e:
          if not suppress_exceptions:
              raise
          # unexpected error shouldn't crash, load dumb default values instead.
          warn(
              "Unexpected error discovering local network interfaces: %s"
              % e
          )
      _load_ips_dumb()
  
imports: import os
  import re
  import socket
  import subprocess
  from subprocess import Popen, PIPE
  from warnings import warn
label_desc: Use image node_id 12 for calling a global function with example usage: _load_ips(suppress_exceptions) and returns: _load_ips_gethostbyname, _load_ips_netifaces, _load_ips_ipconfig, _load_ips_ip, _load_ips_ifconfig