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

标签 scapy

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

最佳答案

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

关于scapy - 如何验证Scapy中的数据包是否具有TCP层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093971/

相关文章:

python - 只能在交互模式下使用Scapy吗?

python-3.x - 为什么(模块未找到错误 : No module named 'scapy' ) shows up?

python - Scapy - 发送 IPv6 路由器广告失败,生命周期 > 0

python - 使用 Scapy 获取 TCP 标志

python - 将 TCP 校验和与 Scapy 进行比较?

python - 使用 Python 和 Scapy 在字节级别控制数据包注入(inject)内容

python - 使用 scapy 完成 HTTP GET

struct - 将嗅探到的 scapy 数据包转换为字节

python - 将 scapy 导入 blender

python-2.7 - Python2.7 --重构数据包打印html