【问题标题】:reading and writing packets python-scapy读写数据包 python-scapy
【发布时间】:2012-10-03 16:40:24
【问题描述】:

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

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 正在用当前的数据包覆盖前一个数据包。有没有办法将数据包附加到文件而不是覆盖?谢谢

【问题讨论】:

  • 如果您想全部阅读并全部写入;为什么不直接复制文件? cp -f /home/packets/info/sub1/${filename} /home/new/${filename}

标签: python networking packet scapy


【解决方案1】:

你要求 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

【讨论】:

    猜你喜欢
    • 2020-08-01
    • 1970-01-01
    • 2013-09-11
    • 2019-07-26
    • 2021-10-08
    • 2022-07-08
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多