def xtractPacket(packet): packet = packet[0] ip_header = packet[0:20] ihl,source_ip,dest_ip,iph = layer3.unpackHeader(ip_header) iph_length = ihl * 4 t = iph_length tcp_header = packet[t:t+20] tcph = layer4.unpackTCPHeader(tcp_header) doff_reserved = tcph[4] tcph_length = doff_reserved >> 4 #print len(packet) #print tcph_length #print iph_length h_size = iph_length + tcph_length * 4 #print h_size data_size = len(packet) - h_size #print data_size data = packet[h_size:] #payloadLength=data_size+tcph_length * 4 #payloadLength=payloadLength-20 payloadLength=len(data) #print "the length of payload is " +str(payloadLength) return [ihl,tcph,source_ip,dest_ip,iph,data,payloadLength]
def seperatePacket(packet): packet = packet[0] ip_header = packet[0:20] ihl,source_ip,dest_ip,iph = layer3.unpackHeader(ip_header) iph_length = ihl * 4 t = iph_length tcp_header = packet[t:t+20] tcph = layer4.unpackTCPHeader(tcp_header) doff_reserved = tcph[4] tcph_length = doff_reserved >> 4 h_size = iph_length + tcph_length * 4 data_size = len(packet) - h_size data = packet[h_size:] return [ip_header,tcp_header,data]