web-dev-qa-db-fra.com

Analyser un fichier pcap dans python

J'essaie d'analyser un fichier pcap en python. Mon objectif est de pouvoir extraire le type de fichier TCP ou UDP qu'il est et l'heure de début/fin. Quelqu'un at-il des conseils dans certains packages pourrait être utile à utiliser et la documentation pour eux ou des conseils en général sur la rédaction?

12

J'utiliserais python-dpkt. Voici la documentation: http://www.commercialventvac.com/dpkt.html

C'est tout ce que je sais faire, désolé.

#!/usr/local/bin/python2.7

import dpkt

counter=0
ipcounter=0
tcpcounter=0
udpcounter=0

filename='sampledata.pcap'

for ts, pkt in dpkt.pcap.Reader(open(filename,'r')):

    counter+=1
    eth=dpkt.ethernet.Ethernet(pkt) 
    if eth.type!=dpkt.ethernet.ETH_TYPE_IP:
       continue

    ip=eth.data
    ipcounter+=1

    if ip.p==dpkt.ip.IP_PROTO_TCP: 
       tcpcounter+=1

    if ip.p==dpkt.ip.IP_PROTO_UDP:
       udpcounter+=1

print "Total number of packets in the pcap file: ", counter
print "Total number of ip packets: ", ipcounter
print "Total number of tcp packets: ", tcpcounter
print "Total number of udp packets: ", udpcounter

Mise à jour:

Projet sur GitHub , documentation ici

18
Matt Roberts

Vous voudrez peut-être commencer par scapy .

9
user862787