input: Write a python function to get address info of a given IP using socket.getaddrinfo.
  assert get_address_info("8.8.8.8") == [('IP version : 2', 'IP address as string: 8.8.8.8', 'IP address as tuple: (8.8.8.8, 0)', 'IP protocol: 17'), ('IP version : 10', 'IP address as string: 8.8.8.8', 'IP address as tuple: (8.8.8.8, 0)', 'IP protocol: 17')]
output: import socket
  
  def get_address_info(ip):
      address_info = socket.getaddrinfo(ip, None)
      result = []
      for info in address_info:
          ip_version = f"IP version : {info[0]}"
          ip_address_str = f"IP address as string: {info[4][0]}"
          ip_address_tuple = f"IP address as tuple: {info[4]}"
          ip_protocol = f"IP protocol: {info[1]}"
          result.append((ip_version, ip_address_str, ip_address_tuple, ip_protocol))
      return result