code: def get_public_ip():
      # type: () -> Optional[str]
      """
      Get the public IP of this machine. External services such as `https://api.ipify.org` or `https://ident.me`
      are used to get the IP
  
      :return: A string representing the IP of this machine or `None` if getting the IP failed
      """
      for external_service in [
          "https://api.ipify.org",
          "https://ident.me",
      ]:
          ip = get_public_ip_from_external_service(external_service)
          if ip:
              return ip
      return None
  
file_path: clearml/clearml/utilities/networking.py
imports: import requests
  import socket
  import subprocess
  from typing import Optional
label_desc: Use image node_id 2 for calling a global function with example usage: get_public_ip() and returns: None, ip