Esempio n. 1
0
 def __init__(self, data, tcp_total_length):
     '''
     data be the part of tcp
     tcp_total_length = ip.total_length - ip_header_length
     '''
     self.source_port = int(data[:4], 16)
     self.destination_port = int(data[4:8], 16)
     self.sequence_number = int(data[8:16], 16)
     self.acknowledgement_number = int(data[16:24], 16)
     self.header_length = int(data[24], 16) * 4  # bytes
     self.reserved = byte2bin(data[25:28])[:3]
     self.flags = byte2bin(data[25:28])[3:]
     # self.nonce = self.flags[0]
     # self.cwr = self.flags[1]
     # self.ecn = self.flags[2]
     # self.urgent = self.flags[3]
     # self.reset = self.flags[6]
     # self.syn = self.flags[7]
     # self.ack = self.flags[4]
     # self.push = self.flags[5]
     # self.fin = self.flags[8]
     self.window_size_value = int(data[28:32], 16)
     self.checksum = data[32:36]
     self.urgent_pointer = data[36:40]
     self.options = data[40:self.header_length * 2]
     self.kind = []
     self.segment_data_length = tcp_total_length - self.header_length
     self.actual_data = b''
     self.stream_index = self.source_port + self.destination_port
     self.get_data(data)
     if self.options:
         self.get_options(self.options)
Esempio n. 2
0
 def __init__(self, header):
     self.version = header[0]
     self.traffic_class = '0x' + header[1:3]
     self.differentiated_service_codepoint = int(
         byte2bin(header[1:3])[:6], 2)
     self.explicit_congestion_notification = int(
         byte2bin(header[1:3])[6:], 2)
     self.flow_label = '0x' + header[3:8]
     self.payload_length = int(header[8:12], 16)
     self.next_proto = Ipv6.next_proto_map[header[12:14]]
     self.hop_limit = int(header[14:16], 16)
     self.source = get_ipv6(header[16:48])
     self.destination = get_ipv6(header[48:80])
Esempio n. 3
0
 def __init__(self, header):
     self.version = header[0]
     self.header_length = int(header[1], 16) * 4  # bytes
     self.dsf = header[2:4]
     self.total_length = int(header[4:8], 16)  # bytes
     self.identification = header[8:12]
     self.flags = byte2bin(header[12:14])[:3]
     self.fragment_offset = byte2bin(header[12:16])[3:]
     self.time_to_live = header[16:18]  # ttl
     self.next_proto = Ipv4.next_proto_map[header[18:20]]
     self.checksum = header[20:24]
     self.source = get_ipv4(header[24:32])
     self.destination = get_ipv4(header[32:40])
Esempio n. 4
0
 def __init__(self, header):
     self.type = int(header[:2], 16)
     self.code = int(header[2:4], 16)
     self.checksum = header[4:8]
     self.cur_hop_limit = int(header[8:10], 16)
     self.flags = byte2bin(header[10:12])
     self.router_lifetime = int(header[12:16], 16)
     self.reachable_time = int(header[16:24], 16)
     self.retrans_time = int(header[24:32], 16)
     self.icmpv6_options = header[32:]
Esempio n. 5
0
 def __init__(self, header):
     self.transaction_id = header[:4]
     self.flags = byte2bin(header[4:8])
     self.response = Dns.message_type[self.flags[0]]
     self.questions = int(header[8:12], 16)
     self.answer_rrs = int(header[12:16], 16)
     self.authority_rrs = int(header[16:20], 16)
     self.additional_rrs = int(header[20:24], 16)
     if self.response == 'query':
         self.query_name = hexstr2bytes(header[24:-8])
         self.query_type = header[-8:-4]
         self.query_class = header[-4:]
     else:
         self.answer_data = hexstr2bytes(header[24:])
Esempio n. 6
0
 def __init__(self, data, tcp_total_length):
     '''
     data be the part of tcp
     tcp_total_length = ip.total_length - ip_header_length
     '''
     self.source_port = int(data[:4], 16)
     self.destination_port = int(data[4:8], 16)
     self.sequence_number = int(data[8:16], 16)
     self.acknowledgement_number = int(data[16:24], 16)
     self.header_length = int(data[24], 16) * 4  # bytes
     self.flags = byte2bin(data[25:28])[3:]
     self.syn = self.flags[7]
     self.ack = self.flags[4]
     self.push = self.flags[5]
     self.fin = self.flags[8]
     self.window_size_value = int(data[28:32], 16)
     self.checksum = data[32:36]
     self.urgent_pointer = data[36:40]
     self.options = data[40:self.header_length * 2]
     self.segment_data_length = tcp_total_length - self.header_length
     self.actual_data = None
     self.next_proto = None
     self.stream_index = self.get_stream()
     self.get_proto(data)