最近,我开始使用Scapy进行编码。基于以下示例:
Scapy Sniffing with Custom Actions
我捕获了多播UDP数据报,但是除了每秒捕获的数据包数量之外,我还想存储每秒捕获的数据包的大小(以字节为单位)(将结果乘以8,然后有比特率)。
问题是data._id
似乎是未定义的,但是我在capturedPacketsSize
之前定义了它。
我试图在不同的地方定义def custom_action()
,例如在capturedPacketsSize
循环中嗅探之前。结果相同。
while 1
答案 0 :(得分:0)
使用global
关键字表示函数内部的变量名称-
def custom_action(packet):
global capturedPacketsSize
global packet_counts
# Create tuple of Src/Dst in sorted order
capturedPacketsSize += len(packet) #here occurs error
key = tuple(sorted([packet[0][1].src, packet[0][1].dst]))
packet_counts.update([key])
您可以了解有关此关键字here
的更多信息