在Python中将原始Netflow数据解码为人类可读文本

问题描述 投票:0回答:1

我设法收集一些原始的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()

这是我得到的输出:

enter image description here

python scapy netflow
1个回答
0
投票

更新:较新的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一起使用

© www.soinside.com 2019 - 2024. All rights reserved.