如何在scapy中发送多个数据包
How to send multiple packets in scapy
我知道之前有人问过这个问题。但是,我不清楚如何构建命令以完成我的任务,并且以前的问题从未被标记为已回答。我需要用 scapy 发送多个数据包,我的用例是使用 UDP 将 DNS 查询发送到远程服务器。这是我需要使用的命令:
sr1(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")))
在上面的例子中,sr1 表示在第 3 层发送数据包,但是有更多的函数定义来发送数据包。请参阅 Here. 大括号之间的其余部分是如何 assemble 使用 scapy 获取 A 记录的 DNS 查询数据包。
但我想做的是在一条命令中发送多个数据包。上一个问题有一个建议的答案:
sendp(p, iface=eth0, inter=1 , count=x )
其中 p 是您的数据包或数据包列表,count 是重复发送操作的次数。
这就是我迷路的地方。如果这是正确的答案,我将如何将其整合到我的命令中,它会是什么样子?
提前致谢!
可行的解决方案:在上面的示例中,您需要使用不同的函数定义来发送数据包。
将sendp替换为send,(sendp在layer2发送,send使用layer 3,sr1设计为只发送一个数据包)并在最后两个右大括号之间放置" , count=x"。其中 x = 您要发送的数据包数。 运行 在 scapy 提示符下,命令和输出应如下所示:
>>> send(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")), count=100 )
....................................................................... .............................
Sent 100 packets.
>>>
一个简单的ICMP包也可以构造也可以发送。在此示例中,我们发送 100 个 ICMP 数据包。
>>> send(IP(dst="192.168.155.128")/ICMP()/"testICMPpacket", count=100 )
....................................................................... .............................
Sent 100 packets.
>>>
我知道之前有人问过这个问题。但是,我不清楚如何构建命令以完成我的任务,并且以前的问题从未被标记为已回答。我需要用 scapy 发送多个数据包,我的用例是使用 UDP 将 DNS 查询发送到远程服务器。这是我需要使用的命令:
sr1(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")))
在上面的例子中,sr1 表示在第 3 层发送数据包,但是有更多的函数定义来发送数据包。请参阅 Here. 大括号之间的其余部分是如何 assemble 使用 scapy 获取 A 记录的 DNS 查询数据包。
但我想做的是在一条命令中发送多个数据包。上一个问题有一个建议的答案:
sendp(p, iface=eth0, inter=1 , count=x )
其中 p 是您的数据包或数据包列表,count 是重复发送操作的次数。
这就是我迷路的地方。如果这是正确的答案,我将如何将其整合到我的命令中,它会是什么样子?
提前致谢!
可行的解决方案:在上面的示例中,您需要使用不同的函数定义来发送数据包。
将sendp替换为send,(sendp在layer2发送,send使用layer 3,sr1设计为只发送一个数据包)并在最后两个右大括号之间放置" , count=x"。其中 x = 您要发送的数据包数。 运行 在 scapy 提示符下,命令和输出应如下所示:
>>> send(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")), count=100 )
....................................................................... .............................
Sent 100 packets.
>>>
一个简单的ICMP包也可以构造也可以发送。在此示例中,我们发送 100 个 ICMP 数据包。
>>> send(IP(dst="192.168.155.128")/ICMP()/"testICMPpacket", count=100 )
....................................................................... .............................
Sent 100 packets.
>>>