2016-03-12 6 views
0

Я использую srp1() из Scapy переигрывать файл PCAP к устройству следующим образом:Как получить информацию о последнем пакете полученых с помощью Scapy

for p in rdpcap(pcapfile): 
    ... 
    rcv = srp1(p, 'eth0') 
    print rcv[IP].len 
    print rcv[TCP].seq 
    ... 

Когда устройство посылает 1 пакет я могу получить его IP.len и TCP.seq, но когда он отправляет 2 пакета, я могу получить только информацию о первом пакете, в то время как мне нужна информация второго.

Где я ошибся?

ответ

2

Оба Scapy's user manual и Scapy's API documentation утверждает, что srp1() представляет собой вариант srp(), который возвращает только первый пакет, который составляет ответ на отправленных пакетах/с.

Поэтому, попробуйте использовать srp() вместо srp1() следующим образом:

for p in rdpcap(pcapfile): 
    ... 
    answers, unanswered = srp(p, 'eth0') 
    last_request, last_answer = answers[-1] 
    print last_answer[IP].len 
    print last_answer[TCP].seq 
    ... 
+0

Я попробовал ваше решение, но получил эту ошибку «AttributeError:„список“Объект не имеет атрибута" Seq» Я напечатанный полученный пакет, выглядит следующим образом: «[>>>] " –

+0

Вы уверены, что вы извлекли последний полученный ответ, т. Е.' Rcv = srp (p, 'eth0') [- 1] ', а не' rcv = srp (p, 'eth0') ' ? – Yoel

+0

да, я сделал именно так ... –

Смежные вопросы