code: def ipaddr(value, options=None):
      '''
      Filters and returns only valid IP objects.
      '''
      ipv4_obj = ipv4(value, options=options)
      ipv6_obj = ipv6(value, options=options)
      if ipv4_obj is None or ipv6_obj is None:
          # an IP address can be either IPv4 either IPv6
          # therefofe if the value passed as arg is not a list, at least one of the calls above will return None
          # if one of them is none, means that we should return only one of them
          return ipv4_obj or ipv6_obj  # one of them
      else:
          return ipv4_obj + ipv6_obf ipaddr(value, options=None):
      '''
      Filters and returns only valid IP objects.
      '''
      ipv4_obj = ipv4(value, options=options)
      ipv6_obj = ipv6(value, options=options)
      if ipv4_obj is None or ipv6_obj is None:
          # an IP address can be either IPv4 either IPv6
          # therefofe if the value passed as arg is not a list, at least one of the calls above will return None
          # if one of them is none, means that we should return only one of them
          return ipv4_obj or ipv6_obj  # one of them
      else:
          return ipv4_obj + ipv6_obj
docs: Filters and returns only valid IP objects.