当前位置:  开发笔记 > 运维 > 正文

如何在Scapy中发送多个数据包

如何解决《如何在Scapy中发送多个数据包》经验,为你挑选了1个好方法。

我知道这已经被问过了。但是,我不清楚如何构造命令以完成任务,并且以前的问题从未标记为已回答。我需要发送多个数据包,而我的用例是使用UDP将DNS查询发送到远程服务器。这是我需要使用的命令:

sr1(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")))

在上面的示例中,sr1表示在第3层发送数据包,但是还有更多的函数定义来发送数据包。见这里。大括号之间的其余部分是如何组装带有A记录的大写字母的DNS查询数据包。

但是我想做的是在一个命令中发送多个数据包。上一个问题对此有一个建议的答案:

sendp(p, iface=eth0, inter=1 , count=x )

其中p是您的数据包或数据包列表,而count是重复发送操作的次数。

这是我迷路的地方。如果答案是正确的,我将如何将其集成到命令中,其外观将如何?

提前致谢!



1> user53029..:

有效的解决方案:在上面的示例中,您将需要使用其他函数定义来发送数据包。

将sendp替换为send(sendp在第2层发送,send使用第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.
>>>

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有