我遇到了Wireshark decode as
功能,我可以将UDP数据包解码为CFLOW
以获取我的Netflow数据。
是否可以编写解码UDP数据包并获取Netflow数据的脚本?
目前我正在尝试使用python3-scapy。我嗅闻的地方 接口并仅检索UDP数据包。我现在被困住了,因为我不知道 我接下来该做什么
注意:我的重点是Netflow版本9
以下是我的代码:
from scapy.all import *
## Create a Packet Counter
counter = 0
INTERFACE = "<interface_name>"
## Define our Custom Action function
def custom_action(pkts):
for packet in pkts:
if (packet.haslayer(UDP)):
# do something , what should i do?
if __name__ == "__main__":
## Setup sniff, filtering for IP traffic
sniff(iface=INTERFACE, prn = custom_action, store=0)
答案 0 :(得分:1)
仅供参考,您可以使用layer in pkt
而不是&#34; old&#34; pkt.haslayer(layer)
。这适用于development version of Scapy(适用于Python 3)。
prn
回调接受数据包,而不是数据包列表或生成器。
如果您想使用NetflowHeader()
(尝试)解析任何UDP数据包,您可以这样做:
def custom_action(pkt):
if UDP in pkt:
pkt[UDP].payload = NetflowHeader(raw(pkt[UDP].payload))
pkts = sniff(iface=INTERFACE, prn=custom_action)
但最接近Wireshark&#34;解码为&#34; Scapy中的功能只是覆盖UDP
的{{1}}属性:
.payload_guess