如何验证Scapy中的数据包是否具有TCP层

时间:2014-02-28 11:31:13

标签: scapy

我想知道如何验证我从Scapy中的sr1()函数收到的数据包是否包含TCP层,以便对TCP标记进行一些处理。

1 个答案:

答案 0 :(得分:9)

您有两个选项,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.'