1

我正在尝试从多个文件中一一读取数据包并将它们写入不同文件夹中的文件(使用相同的文件名)。我正在使用这个程序:

import os, os.path
from scapy.all import*

i=0
filename = ''

def callback_func(pkt):
    wrpcap("/home/new/"+filename,pkt)

files_in_dir = os.listdir("/home/packets/info/sub1")
for file in files_in_dir:
    filename = str(file)
    sniff(prn = callback_func, offline = file)  

在这个程序中,我正在从 /home/packets/info/sub1 目录读取一个文件,使用 sniff() 一个一个地读取该文件中的所有数据包,将该文件中的所有这些数据包写入另一个具有相同文件名的不同文件使用 wrpcap 的目录,/home/new/。

Scapy 正在用当前的数据包覆盖前一个数据包。有没有办法将数据包附加到文件而不是覆盖?谢谢

4

1 回答 1

2

你要求 scapy 做的就是覆盖......要追加,你需要做这样的事情......

import os, os.path
from scapy.all import *

i=0
filename = ''

ORIG_DIR = '/home/packets/info/sub1'
files_in_dir = os.listdir(ORIG_DIR)
for file in files_in_dir:
    filename = str(file)
    paks = rdpcap(ORIG_DIR+filename)  # Read original packets
    paks.extend(sniff(offline=file))      # Append new packets to original pak list
    wrpcap('/home/new/'+filename, paks)   # write new pak list to file
于 2012-10-07T11:02:19.940 回答