我正在尝试从多个文件中逐个读取数据包,并将它们写入不同文件夹中的文件(使用相同的文件名)。我正在使用这个程序:
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正在使用当前数据包覆盖前一个数据包。有没有办法将数据包附加到文件而不是覆盖?感谢
答案 0 :(得分: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