我正在解析一个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标志?
Tags:
另一种选择,作为记录,在提出这个问题时还不存在。它适用于当前的Scapy开发版本(包括此更改的第一个版本将是2.4.0;2.4.0rc*也包括它)。
现在可以对标志值使用
str()
:通常,处理标志的常用方法是使用位图和按位运算符。如果您的
Packet
类没有特定的方法来测试标志,那么最好的做法是:像这样测试它们:
遗憾的是,python没有一个
switch
语句来使这个更加优雅,但这并不重要。希望这有帮助!
您可以使用
Packet.sprintf()
方法:如果你想要“长”的名字,用一个
dict
代替一个if
…elif
。。。表达式(dict
通常在Python中使用,而在其他语言中则使用switch
):相关问题 更多 >
编程相关推荐