Python 读取pyshark IEEE802.1AD层剖析器值时出现问题
背景:Python 读取pyshark IEEE802.1AD层剖析器值时出现问题,python,wireshark,wireshark-dissector,Python,Wireshark,Wireshark Dissector,背景: 我试图使用pyshark模块来解析包含三重802.1AD标签的数据包。打印包层时,存在两个IEEE8021AD层 [<ETH Layer>, <IEEE8021AD Layer>, <IEEE8021AD Layer>, <IP Layer>, <DATA Layer>] 代码输出: ----------------- Packet 1 -------------------- [<ETH Layer>, <
我试图使用
pyshark
模块来解析包含三重802.1AD标签的数据包。打印包层时,存在两个IEEE8021AD层
[<ETH Layer>, <IEEE8021AD Layer>, <IEEE8021AD Layer>, <IP Layer>, <DATA Layer>]
代码输出:
----------------- Packet 1 --------------------
[<ETH Layer>, <IEEE8021AD Layer>, <IEEE8021AD Layer>, <IP Layer>, <DATA Layer>]
Layer IEEE8021AD:
101. .... .... .... = Priority: 5
...1 .... .... .... = DEI: 1
.... 0000 0000 1000 = ID: 8
Type: 802.1ad Provider Bridge (Q-in-Q) (0x88a8)
.... 0000 0000 1001 = ID: 9
100. .... .... .... = Priority: 4
...0 .... .... .... = DEI: 0
dei = 1 # Drop Eligibility Indicator for VLAN #2
priority = 5 # Priority for VLAN #2
cvid = 8 # ID for VLAN #2
svid = 9 # ID for VLAN #1
--------------数据包1--------------------
[, , ]
层IEEE8021AD:
101. .... .... .... = 优先次序:5
...1 .... .... .... = DEI:1
.... 0000 0000 1000=ID:8
类型:802.1ad提供程序网桥(Q-in-Q)(0x88a8)
.... 0000 0000 1001=ID:9
100. .... .... .... = 优先次序:4
...0 .... .... .... = DEI:0
dei=1#删除VLAN的合格指标#2
优先级=5#VLAN优先级#2
cvid=8#VLAN的ID#2
svid=9#VLAN的ID#1
问题#1:第二个IEEE8021AD标记可以通过层列表使用数字索引值进行访问:pkt.layers[2]。优先级
。
#!/usr/bin/python
from __future__ import print_function
import pyshark
import pprint
cap = pyshark.FileCapture(filename)
pp = pprint.PrettyPrinter(indent=4)
for i, pkt in enumerate(cap):
print("----------------- Packet %d --------------------" % i)
print(pkt.layers)
print(pkt.ieee8021ad)
print(" dei = %s" % pkt.ieee8021ad.dei)
print(" priority = %s" % pkt.ieee8021ad.priority)
print(" cvid = %s" % pkt.ieee8021ad.cvid)
print(" svid = %s" % pkt.ieee8021ad.svid)
#print(" type = %s" % pkt.ieee8021ad.type) # 'type' doesn't exist>
----------------- Packet 1 --------------------
[<ETH Layer>, <IEEE8021AD Layer>, <IEEE8021AD Layer>, <IP Layer>, <DATA Layer>]
Layer IEEE8021AD:
101. .... .... .... = Priority: 5
...1 .... .... .... = DEI: 1
.... 0000 0000 1000 = ID: 8
Type: 802.1ad Provider Bridge (Q-in-Q) (0x88a8)
.... 0000 0000 1001 = ID: 9
100. .... .... .... = Priority: 4
...0 .... .... .... = DEI: 0
dei = 1 # Drop Eligibility Indicator for VLAN #2
priority = 5 # Priority for VLAN #2
cvid = 8 # ID for VLAN #2
svid = 9 # ID for VLAN #1