如何一次又一次地发送数据包直到响应(Scapy)



我在Scapy中构建了一个ARP数据包(使用Python(,我尝试不间断地一遍又一遍地发送这个数据包,直到从目的地接收并回答,保存响应并脱离循环。我试着用谷歌搜索,但没有成功。因此,我在这里碰碰运气,很高兴收到如何以有效的方式做到这一点的想法。谢谢

Scapy的sr1函数发送一个数据包,并等待其答案最多timeout秒。如果接收到应答,则sr1返回接收到的分组(如果有的话(,否则返回None。所以你基本上可以使用这个循环做你想做的事:

from scapy.all import ARP, sr1
loop = True
request = ARP(pdst="10.0.0.1")
while loop:
response = sr1(request, timeout=5)
if response is None:
print('no response after 5 seconds. retrying ...')
else:
loop = False
print('I got an answer:')
response.show()

最新更新