code: def unpack(self, buff, offset=0):
          
          try:
              unpacked_data = struct.unpack('!4B', buff[offset:offset+4])
              self._value = '.'.join([str(x) for x in unpacked_data])
          except struct.error as exception:
              raise exceptions.UnpackException('%s; %s: %s' % (exception,
                                                               offset, buff))
docs: Unpack a binary message into this object's attributes.
  
          Unpack the binary value *buff* and update this object attributes based
          on the results.
  
          Args:
              buff (bytes): Binary data package to be unpacked.
              offset (int): Where to begin unpacking.
  
          Raises:
              Exception: If there is a struct unpacking error.