我会尝试用一个简化的例子来证明我的问题。以下是一个非常简单的(单线程)数据包嗅探器(ICMP):fromscapy.allimport*m_iface="wlan0"m_dst="192.168.0.1"defprint_summary(pkt):printpkt.summary()defplain_sniff():sniff(iface=m_iface,count=10,filter="icmpandsrc{0}".format(m_dst),prn=print_summary)这个嗅探器工作得很好,我得到了输出:WARNING:NoroutefoundforIPv6destinat
我正在尝试编写一个Python脚本,该脚本使用Scapy模块来ping内部IP范围以确定哪些IP在线。到目前为止我已经知道了:#!/usr/bin/pythonfromscapy.allimport*conf.verb=0foripinrange(0,256):packet=IP(dst="192.168.0."+str(ip),ttl=20)/ICMP()reply=sr1(packet)if"192.168."inreply.src:printreply.src,"isonline"程序会静置一段时间什么都不做,然后如果我用CTRL+C终止它,我会收到一条错误消息:Tracebac
我正在使用Scapy的rdpcap函数来读取PCAP文件。我还使用了linktoHTTPsupportinScapy中描述的模块这在我的案例中是必需的,因为我必须检索所有HTTP请求和响应及其相关数据包。我注意到rdpcap函数解析大型PCAP文件需要花费太多时间来读取它。是否有更快读取pcap文件的解决方案? 最佳答案 Scapy还有另一种方法sniff,你也可以用它来读取pcap文件:defmethod_filter_HTTP(pkt):#Yourprocessingsniff(offline="your_file.pcap",
这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtocalculateapacketchecksumwithoutsendingit?我已经在捕获的数据包中伪装了源IP和MAC地址,但现在我需要重新计算校验和,以便它在收到后检查(当然是在注入(inject)网络之后)。我真的不想自己实现校验和,我在想scapy可以为我做这件事。我读到show2()函数应该重新计算校验和,但我似乎无法让它工作。那么,我如何使用scapy重新计算(并替换)捕获的+欺骗数据包的校验和?谢谢!
我正在使用Scapy并希望根据目标mac地址进行过滤。但是,我得到显示的数据包,其中目标MAC地址不是过滤器中指定的地址。这是一个代码片段:fromscapy.allimport*sniff(iface="eth1",filter="etherdsthost91:e0:f0:01:00:00",count=3,prn=lambdax:x.show())我正在运行Scapy2.2.0关于这里的问题有什么想法吗? 最佳答案 Scapy需要许多不同系统的大量依赖项。您很可能没有BPF过滤器工作所需的依赖项。http://www.secde
在Scapy(或者甚至只是Python,为此)中,我如何获得给定数据包的大小(以字节为单位)?我很想使用函数len但我不确定它在数据包的情况下究竟返回什么。>>>len(IP(dst="www.google.com"))20>>>len(IP(dst="www.google.com")/TCP(dport=80))40 最佳答案 >>>len(IP(dst="www.google.com"))20最小的IP头有20个字节。>>>len(IP(dst="www.google.com")/TCP(dport=80))40最小的TCPhe
如果我在python源文件中包含以下行fromscapy.allimport*我收到这个错误fromscapy.allimport*ImportError:Nomodulenamedall在Console和IDLE中是这样,但在eclipse中不是这样。我很困惑为什么会这样。有人可以帮助我吗? 最佳答案 如果你的系统没有安装scapy,那么你可以使用这个命令来安装scapy:sudoapt-getinstallpython-scapy 关于Pythonscapy导入错误,我们在Stack
我正在尝试使用Scapy正确剖析PPPoE发现数据包。以下是Scapy显示示例PADI数据包的方式:>>>p=Ether("\xff\xff\xff\xff\xff\xff\x08\x00'\xf3>>p.show()###[Ethernet]###dst=ff:ff:ff:ff:ff:ffsrc=08:00:27:f3:3c:35type=0x8863###[PPPoverEthernetDiscovery]###version=1Ltype=1Lcode=PADIsessionid=0x0len=12###[Raw]###load='\x01\x01\x00\x00\x01\x03
我正在尝试在测试网络上使用scapy进行中间人攻击。我的设置是这样的:现在你明白了,这是代码:fromscapy.allimport*importmultiprocessingimporttimeclassMITM:packets=[]def__init__(self,victim=("192.168.116.143","00:0c:29:d1:aa:71"),node2=("192.168.116.1","00:50:56:c0:00:08")):self.victim=victimself.node2=node2multiprocessing.Process(target=self
我正在尝试编写一个scapy脚本,它可以计算ping时间的平均值,因此我需要获取发送ICMP回显/回复数据包和收到回复数据包之间耗时。现在,我有这个:#!/usr/bin/envpythonfromscapy.allimport*fromtimeimport*defQoS_ping(host,count=3):packet=Ether()/IP(dst=host)/ICMP()t=0.0forxinrange(count):t1=time()ans=srp(packet,iface="eth0",verbose=0)t2=time()t+=t2-t1return(t/count)*10