我正在尝试制作一个脚本来测试网络交换机和路由器的行为。这个想法是在具有连接到不同路由器端口的多个网络适配器的主机上运行基于 scapy 的脚本。该脚本将在一个端口上发送探测数据包,并观察探测数据包如何分发到其他端口。
过去,我使用多处理 python 包与 scapy 并行处理。在幕后多处理使用分叉进程并提供方便的进程间通信原语。我想这次我也可以这样做:创建一堆子进程,每个子进程都在自己的接口上进行嗅探,并将嗅探到的数据包推送到父进程的队列中。作为奖励,这种方法也允许在远程主机上运行嗅探器。
但是自从我上次玩多处理和 scapy 以来,我发现了 Automaton scapy 模块,如果可能的话,我更愿意使用它。这个模块有receive_condition方法装饰器,但我不知道怎么做
- 设置 Automaton 模块嗅探的接口
- 确定接收到的接口数据包
也很高兴知道数据包是入口还是出口,但我怀疑这可能是不可能的。
有什么建议么?