input: Write a python function to check if a given string is a valid IP address.
  assert is_valid_ip('192.168.1.1') == True
  assert is_valid_ip('255.255.255.255') == True
  assert is_valid_ip('256.256.256.256') == False
  assert is_valid_ip('192.168.1') == False
  assert is_valid_ip('abc.def.ghi.jkl') == False
output: def is_valid_ip(ip):
      parts = ip.split('.')
      if len(parts) != 4:
          return False
      for part in parts:
          if not part.isdigit():
              return False
          num = int(part)
          if num < 0 or num > 255:
              return False
      return True