繁体   English   中英

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

[英]Decode raw Netflow Data to human readable text in Python

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

这是我得到的输出:

在此处输入图片说明

更新:较新的 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM