如何使用Scapy接收数据?

时间:2014-06-15 15:24:59

标签: python sockets networking scapy

我编写了一个脚本,允许使用选定的目标端口在IP地址上发送带有Scapy的数据包。

我想收到已发送数据包的响应。

例如,如果发送了数据包,我想收到响应......

我发送一个简单的20字节数据包:例如在我编码的<161>端口上发送数据包

data ="\x14"
packet = IP(dst=adresseip)/UDP(sport=161,dport=161)/Raw(load=data) 
send(packet) 

但是如何接收已发送数据包的响应?

1 个答案:

答案 0 :(得分:2)

scapy的sr()功能会为你做到这一点。它发送一个数据包并等待响应。或者,在send()数据包之后,您可以sniff()获取回复。

这是使用sr()的简单示例:

>>> pingr = IP(dst="192.168.1.1")/ICMP()
>>> sr(pingr)
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
(<Results: TCP:0 UDP:0 ICMP:1 Other:0>, <Unanswered: TCP:0 UDP:0 ICMP:0 Other:0>)