2014-02-28 34 views

回答

6

你有两个选择,in操作符是一个。

>>> TCP in pkt 
True 
>>> if TCP in pkt: 
...  # Handle TCP Flags 

Scapy中的数据包对象也有一个叫做haslayer()的函数。

>>> pkt = IP()/TCP() 
>>> pkt.haslayer(TCP) 
1 
>>> pkt2 = IP()/UDP() 
>>> pkt2.haslayer(TCP) 
0 
>>> Packet.haslayer.__doc__ 
'true if self has a layer that is an instance of cls. Superseded by "cls in self" syntax.' 
+0

非常感谢您RyPeck的回答,问题是,我要检查数据包是Scapy的一个SR1()命令的结果,因此,这些选项并没有为我遗憾的是工作。我得到了这个错误信息:AttributeError:'NoneType'对象没有属性'haslayer' – farfalla

+0

听起来就是这样,因为你实际上并没有从sr1中取回数据包。 – RyPeck

相关问题