我设法收集了一些原始的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()
这是我得到的输出:
答案 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