同时发送几个数据包并获得答案

  • 本文关键字:数据包 几个 答案 scapy
  • 更新时间 :
  • 英文 :


我正在尝试发送 4 个数据包并为每个数据包获取答案(如 CMD 上的"ping"工具(,我该怎么做? 数据包:

packet = IP(dst = "www.google.com")/ICMP()/"hi"

我知道我可以像这样发送:send(packet, count=4)但我需要所有这些问题的答案。sr1(packet)只发送了一次,sr()我没有意识到如何使用它发送 4 个数据包并获得答案......

我试着在第 35 页 http://www.secdev.org/projects/scapy/files/scapydoc.pdf 看这里

谢谢!!!

首先,sr()用于发送数据包和接收答案,而sr1()是一个变体,仅返回发送数据包的第一个答案。你可以在这里找到更多信息,当然也可以从python或scapy的交互式控制台中输入help(sr1)(或任何其他函数(查看有关该函数的详细信息:

sr1(x, filter=None, iface=None, nofilter=0, *args, **kargs)
Send packets at layer 3 and return only the first answer
nofilter: put 1 to avoid use of bpf filters
retry:    if positive, how many times to resend unanswered packets
if negative, how many times to retry when no more packets are answered
timeout:  how much time to wait after the last packet has been sent
verbose:  set verbosity level
multi:    whether to accept multiple answers for the same stimulus
filter:   provide a BPF filter
iface:    listen answers only on the given interface

现在,要连续发送这些数据包 4 次并获得每个数据包的答案,您只需尝试:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from scapy.all import *
packet = IP(dst = "www.google.com")/ICMP()/"hi"
for _ in range(4):
answer = sr1(packet)
answer.show()

最新更新