将原始 Netflow 数据解码为 Python 中的人类可读文本
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=[...])
原文post:
Netflow v9 是一种糟糕的格式,因为每个数据包都需要分解一些先前的数据包。 Scapy 不支持移动中的此功能,但它提供了一个可在数据包列表上调用的函数。
您需要收集 netflowV9 数据包列表,然后调用 netflowv9_defragment(thelist)
见https://github.com/secdev/scapy/blob/master/scapy/layers/netflow.py#L11
这仅意味着您不能将 prn
与 NetflowV9
一起使用
我设法收集了一些原始 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=[...])
原文post:
Netflow v9 是一种糟糕的格式,因为每个数据包都需要分解一些先前的数据包。 Scapy 不支持移动中的此功能,但它提供了一个可在数据包列表上调用的函数。
您需要收集 netflowV9 数据包列表,然后调用 netflowv9_defragment(thelist)
见https://github.com/secdev/scapy/blob/master/scapy/layers/netflow.py#L11
这仅意味着您不能将 prn
与 NetflowV9