配置Scapy以侦听特定数据包,一旦收到数据包,就发送一个特定的数据包

时间:2013-10-19 02:05:53

标签: scapy

是否可以将Scapy配置为侦听网络流量并在收到具有特定参数的数据包后发送精心制作的数据包?我的意思是例如Scapy侦听eth0上的网络流量,如果收到来自源IP 10.10.44.3的ICMP“echo request”数据包,Scapy将TCP SYN数据包发送到端口34到IP地址192.168.2.1,使用8.8.8.8作为资源。 Scapy可以进行这样的设置吗?

1 个答案:

答案 0 :(得分:0)

使用sniff()功能,您可以为stop_filter选项提供参数。

>>> print sniff.__doc__
Sniff packets
sniff([count=0,] [prn=None,] [store=1,] [offline=None,] [lfilter=None,] + 
      L2ListenSocket args) -> list of packets

...clipped...

stop_filter: python function applied to each packet to determine
             if we have to stop the capture after this packet
             ex: stop_filter = lambda x: x.haslayer(TCP)

如果函数返回1,则sniff将停止,您可以继续使用您想要的任何逻辑。