2010-07-02 10 views
0

J'essaie d'ouvrir un fichier .pcap en python. Quelqu'un peut-il aider avec cela? chaque fois que j'essaie cela, il donne un message d'erreur qui "IOError: [Errno 2] No such file or directory: 'test.pcap'"ouverture d'un fichier pcap en python

import dpkt 
f = open('test.pcap') 
pcap = dpkt.pcap.Reader(f) 
+6

l'erreur n'est pas claire? votre code ne voit pas votre fichier 'test.pcap' – SilentGhost

Répondre

2

Essayez de donner open() le bon chemin à test.pcap:

f = open(r'C:\Users\hollandspur\Documents\test.pcap') 

ou quelque ...

0

Comme Tim a souligné ci-dessus, vous devez probablement utiliser le chemin complet du fichier car vous n'êtes pas dans le même répertoire. Si vous utilisez de l'interpréteur vous pouvez vérifier votre chemin en utilisant les éléments suivants:

import os 
os.getcwd() 

Si vous n'êtes pas dans le même répertoire que l'endroit où vous êtes fichier est stocké alors vous devez le chemin complet du fichier. Vous pouvez taper le tout, ou avec un peu plus de travail, vous pouvez accepter les chemins de fichiers relatifs.

import os 

relativePath = 'test.pcap' # Relative directory something like '../test.pcap' 
fullPath = os.path.join(os.getcwd(),relativePath) # Produces something like '/home/hallandspur/Documents/test.pcap' 
f = open(fullPath) 

Cela vous permettra de donner un chemin tel que "../test.pcap" qui monterait un répertoire et recherchez le fichier. Ceci est particulièrement utile si vous exécutez ce script à partir de la ligne de commande ou si votre fichier se trouve dans un répertoire différent du répertoire en cours.

Vous pouvez également regarder dans des fonctions telles que os.path.isfile(fullPath) qui vous permettent de vérifier si le fichier existe

-1

J'essaie d'ouvrir un fichier .pcap en python. Quelqu'un peut-il aider avec cela? chaque fois que j'essaie cela, il donne un message d'erreur qui IOError: [Errno 2] No such file or directory: 'test.pcap'

Essayez ce code: essayez ce code pour surmonter la IOError ci-dessus

import dpkt,sys,os
"""
This program is open a pcap file and
count the number of packets present in it.
it also count the number of ip packet, tcp packets and udp packets.
......from irengbam tilokchan singh.
"""
counter=0
ipcounter=0
tcpcounter=0
udpcounter=0
filename=raw_input("Enter the pcap trace file:")
if os.path.isfile(filename):
print "Present: ",filename
trace=filename
else:
print "Absent: ",filename
sys.stderr.write("Cannot open file for reading\n")
sys.exit(-1)
for ts,pkt in dpkt.pcap.Reader(open(filen,'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: #ip.p == 6:
tcpcounter+=1
#tcp_analysis(ts,ip)
if ip.p==dpkt.ip.IP_PROTO_UDP: #ip.p==17:
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
0

Vous devriez lire un fichier binaire. Voir le paramètre 'rb' qui indique de lire ceci comme fichier binaire import dpkt f = open('test.pcap','rb') pcap = dpkt.pcap.Reader(f)