code: def unpack_ip(fourbytes):
  	
  	if not isinstance(fourbytes, bytes):
  		raise ValueError("given buffer is not a string")
  	if len(fourbytes) != 4:
  		raise ValueError("given buffer is not exactly four bytes long")
  	return ".".join([str(x) for x in bytes_to_int_seq(fourbytes)])
docs: Converts an ip address given in a four byte string in network
  	byte order to a string in dotted notation.
  
  	>>> unpack_ip(b"dead")
  	'100.101.97.100'
  	>>> unpack_ip(b"alive")
  	Traceback (most recent call last):
  	...
  	ValueError: given buffer is not exactly four bytes long
  
  	@type fourbytes: bytes
  	@rtype: str
  	@raises ValueError: for bad input