背景:
我正在使用 scapy 测试一个网络设备,该设备可以通过交换源/目标 MAC、IP 地址和第 4 层端口号来选择性地环回数据包。可以为layer_2_only
、layers_2_and_3
、选择交换layers_2_3_and_4
。我在服务器上运行 scapy,将数据包传输到设备并验证发回的数据包是否根据设置交换了适当的源/目标字段。
问题:
发送数据包和接收匹配的 scapysrploop()
方法适用于 PING 和 ARP 等消息类型。我发现如果我传输一个 UDP 数据包并且源/目标端口没有被环回设备反转,那么 scapy 不会将环回数据包视为匹配项。当环回设备反转端口号时,数据包被检测为匹配。
问题:
有没有办法覆盖或以其他方式影响 scapy 的数据包匹配逻辑?例如,能够在第 4 层禁用匹配会很有用。我查看了文档,没有发现任何表明这是可能的。
有没有另一种方法可以在 scapy 中实现这一点。我已经尝试过 using
send()
,sniff()
但我没有成功使用该方法捕获回复。