我正在使用pyshark读取一个pcap文件,我想打印每个包中包含的每个层的一些字段。在
我设置了一个if条件来检查当前数据包中是否存在特定层,如果为真,则打印一些字段。在
当层存在于包装层,但我得到了“raise AttributeError()”,当层 不存在,在我的情况下,第一个数据包中不存在tcp层,然后出现错误,脚本停止。在
内容包装层具有此格式
[<ETH Layer>, <IP Layer>, <TCP Layer>]
它看起来像是一个列表,但是如果我试图像下面这样计算这些字符串中的任何一个,结果总是错误的。在
^{pr2}$如何正确地检查某个层是否存在?在
我目前的代码是:
import pyshark
# Open saved trace file
cap = pyshark.FileCapture('file.pcap')
for pkt in cap:
lyr = pkt.layers # Current layers
if p.eth in lyrs: print p.eth.src # If Ethernet layer exists print ethernet value
if p.ip in lyrs: print p.ip.src # If IP layer exists print source IP
if p.tcp in lyrs: print p.tcp.port # If TCP layer exists print port
提前谢谢
试试这个:
示例:
^{pr2}$为我工作!在
相关问题 更多 >
编程相关推荐