gpt4 book ai didi

python - 使用 Scapy 获取 TCP 标志

转载 作者:太空狗 更新时间:2023-10-29 17:38:14 27 4
gpt4 key购买 nike

我正在解析一个 PCAP 文件,我需要提取 TCP 标志(SYN、ACK、PSH、URG 等)。我正在使用 packet['TCP'].flags 值一次获取所有标志。

pkts = PcapReader(infile)
for p in pkts:
F = bin(p['TCP'].flags)
print F, bin(F), p.summary()
# manual flags extraction from F

有没有办法在不从 packet['TCP'].flags 值中手动提取它的情况下获取单个 TCP 标志?

最佳答案

通常,处理 FLAGS 的常用方法是使用位图和位运算符。如果您的 Packet 类没有特定的方法来测试标志,恕我直言,您可以做的最好的事情是:

FIN = 0x01
SYN = 0x02
RST = 0x04
PSH = 0x08
ACK = 0x10
URG = 0x20
ECE = 0x40
CWR = 0x80

然后像这样测试它们:

F = p['TCP'].flags    # this should give you an integer
if F & FIN:
# FIN flag activated
if F & SYN:
# SYN flag activated
# rest of the flags here

遗憾的是,python 没有switch 语句来使它更优雅,但这并不重要。

希望这对您有所帮助!

关于python - 使用 Scapy 获取 TCP 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20429674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com