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

时间:2018-07-19 03:18:17

标签: python scapy netflow

我设法收集了一些原始的Netflow数据,并利用狡猾的手段将我的数据包解码为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

1 个答案:

答案 0 :(得分:0)

更新:新的Scapy版本支持即时流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