Потеряли какой-то пакет с помощью модуля сниффинга Python

Я пробовал почти все модули сниффинга Python (pcapy, winpcapy, pypcap, scapy, socket).

У меня всегда была одна и та же проблема, что я потерял часть пакетов (около 1% ~ 10%).

Но при этом с Wireshark и tcpdump пакеты никогда не теряются; может производительность? Или попробовать сделать что-то с многопроцессорностью?


person Poisonx    schedule 19.07.2017    source источник
comment
пожалуйста, предоставьте код, который вы используете для сбора. потеря пакетов может зависеть от параметров настройки scapy   -  person StephenG    schedule 19.07.2017
comment
ok.i используя пример кода с www.secdev.org/projects/scapy/: from scapy.all import * from scapy.layers import http def http_header(): do something; package=sniff(prn=http_header,store=0) и как я могу проверить настроенный scapy. спасибо!   -  person Poisonx    schedule 20.07.2017


Ответы (1)


из этого кода

from scapy.all import *
from scapy.layers import http 
def http_header():
    do something

packet=sniff(prn=http_header,store=0)

store 0 это проблема. он в основном говорит, что обрабатывает пакеты как можно скорее, не буферизуя. запустите тот же код с sniff(prn=http_header), и вы не потеряете никаких пакетов

person StephenG    schedule 20.07.2017
comment
спасибо за ваш ответ, я попробовал еще раз с помощью sniff (prn = http_header), но он все еще потерян, и я обнаружил утечку памяти процесса Python, на самом деле, я буду запускать программу долгое время. так что мне это нужно. - person Poisonx; 20.07.2017
comment
@Poisonx, ты нашел решение? Я также пробовал без store=0, пакет все еще потерян. - person HappyCoding; 06.07.2018