def decode(self, data): if len(data) < 28: return None data = data[:28] packet = struct.unpack('!HHBBHIHIIHI', data) self.hw_type = packet[0] self.proto_type = packet[1] self.hw_size = packet[2] self.proto_size = packet[3] self.opcode = packet[4] self.sender_mac = decode_mac(packet[5], packet[6]) self.sender_ip = packet[7] self.target_mac = decode_mac(packet[8], packet[9]) self.target_ip = packet[10]
def decode(self, data): packet = struct.unpack('!IHIHH', data[:14]) self.destination = decode_mac(packet[0], packet[1]) self.source = decode_mac(packet[2], packet[3]) self.protocol = packet[4] self.payload = data[14:]