0

我设法收集了一些原始 Netflow 数据,并使用 scapy 将我的数据包解码为 Netflow 版本 9。但是,我被卡住了,无法继续将字段值转换为人类可读的文本。下面的代码是我如何使用 scapy 查看数据:

from scapy.all import *

def handle(self, ip, data):     
    logging.info('Receiving Data from %s with %s bytes of data.' % (ip, len(data)))
    a = NetflowHeader(raw(data))
    a.show()

这是我得到的输出:

在此处输入图像描述

4

1 回答 1

1

更新:较新的 Scapy 版本支持 on-the-flow netflow v9 解析(使用 GitHub 主版本)。

# Live / on-the-flow / other: use NetflowSession
>>> sniff(session=NetflowSession, prn=[...])

原帖:

Netflow v9 是一种糟糕的格式,因为每个数据包都需要剖析之前的一些数据包。Scapy 不支持此功能,但它提供了一个可在数据包列表上调用的函数。

您需要收集 netflowV9 数据包列表,然后调用netflowv9_defragment(thelist)

https://github.com/secdev/scapy/blob/master/scapy/layers/netflow.py#L11

这仅意味着您不能prn与 NetflowV9 一起使用

于 2018-07-19T08:11:39.493 回答