code: def ip_network(address, strict=True):
      
      try:
          return IPv4Network(address, strict)
      except (AddressValueError, NetmaskValueError):
          pass
  
      try:
          return IPv6Network(address, strict)
      except (AddressValueError, NetmaskValueError):
          pass
  
      raise ValueError('%r does not appear to be an IPv4 or IPv6 network' %
                       address)
docs: Take an IP string/int and return an object of the correct type.
  
      Args:
          address: A string or integer, the IP network.  Either IPv4 or
            IPv6 networks may be supplied; integers less than 2**32 will
            be considered to be IPv4 by default.
  
      Returns:
          An IPv4Network or IPv6Network object.
  
      Raises:
          ValueError: if the string passed isn't either a v4 or a v6
            address. Or if the network has host bits set.