code: def get_local_machine_id(server_namebook):
      """Given server_namebook, find local machine ID
  
      Parameters
      ----------
      server_namebook: dict
          IP address namebook of server nodes, where key is the server's ID
          (start from 0) and value is the server's machine_id, IP address,
          port, and group_count, e.g.,
  
            {0:'[0, '172.31.40.143', 30050, 2],
             1:'[0, '172.31.40.143', 30051, 2],
             2:'[1, '172.31.36.140', 30050, 2],
             3:'[1, '172.31.36.140', 30051, 2],
             4:'[2, '172.31.47.147', 30050, 2],
             5:'[2, '172.31.47.147', 30051, 2],
             6:'[3, '172.31.30.180', 30050, 2],
             7:'[3, '172.31.30.180', 30051, 2]}
  
      Returns
      -------
      int
          local machine ID
      """
      res = 0
      ip_list = local_ip4_addr_list()
      for _, data in server_namebook.items():
          machine_id = data[0]
          ip_addr = data[1]
          if ip_addr in ip_list:
              res = machine_id
              break
      return res
  
file_path: dgl/python/dgl/distributed/rpc_client.py
imports: import atexit
  import logging
  import os
  import socket
  import time
  from .None import rpc
  from .constants import MAX_QUEUE_SIZE
label_desc: Use image node_id 2 for calling a global function with example usage: get_local_machine_id(server_namebook) and returns: res