У меня есть некоторые pcap файлы, и я хочу отфильтровать протоколом, т.е. если я захочу отфильтровать протоколом HTTP, то что-либо кроме пакетов HTTP останется в pcap файле.
Существует инструмент, названный openDPI, и это идеально подходит для того, в чем я нуждаюсь, но нет никакой обертки для языка Python.
Кто-либо знает какие-либо модули Python, которые могут сделать то, в чем я нуждаюсь?
Спасибо
Редактирование 1:
HTTP-фильтрация была просто примером, существует много протоколов, которые я хочу отфильтровать.
Редактирование 2:
Я попробовал Scapy, но я не изображаю, как отфильтровать правильно. Фильтр только принимает выражение Фильтра пакетов Беркли, т.е. я не могу применить MSN, или HTTP или другой определенный фильтр от верхнего уровня. Кто-либо может помочь мне?
Что-то вроде
from pcapy import open_offline from impacket.ImpactDecoder import EthDecoder from impacket.ImpactPacket import IP, TCP, UDP, ICMP decoder = EthDecoder() def callback(jdr, data): packet = decoder.decode(data) child = packet.child() if isinstance(child, IP): child = packet.child() if isinstance(child, TCP): if child.get_th_dport() == 80: print 'HTTP' pcap = open_offline('net.cap') pcap.loop(0, callback)
с использованием