【发布时间】:2014-04-01 09:14:20
【问题描述】:
我想知道如何验证我从 Scapy 中的 sr1() 函数收到的数据包是否包含 TCP 层,以便对 TCP 标志进行一些处理。
【问题讨论】:
标签: scapy
我想知道如何验证我从 Scapy 中的 sr1() 函数收到的数据包是否包含 TCP 层,以便对 TCP 标志进行一些处理。
【问题讨论】:
标签: scapy
您有两种选择,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.'
【讨论】:
sr1 收到数据包。