2024-10-02 06:31:11 发布
网友
我试图使用python脚本将TCP流量发送到设备。 我的脚本读取一个特殊的pcap来处理数据包。 在我的packet capture file中有dot1qvlan标记,我想用脚本中的scapy删除它。在
TCP
pcap
packet capture file
scapy
输出包含以下内容:
Ether / Dot1Q / IP / TCP >: port > : port
请告诉我如何使用scapy删除脚本中的vlan标记。在
您应该遍历所有层并找到Ether。然后将其有效载荷设置为802.1q层的有效载荷。代码看起来像(仅仅是草图并不是精确的代码):
Ether
while not isinstance(layer, NoPayload): if (type(layer) is Ether): payload_inside_dot1q = layer.payload.payload layer.add_payload(payload_inside_dot1q) layer.type = 0x0800 # IPv4 layer = layer.payload
您可能还应该更正以太层的layer.chksum。在
layer.chksum
UPD:在准备pcap文件时,还可以删除802.1q层tcprewrite(https://linux.die.net/man/1/tcprewrite):
您应该遍历所有层并找到
Ether
。然后将其有效载荷设置为802.1q层的有效载荷。代码看起来像(仅仅是草图并不是精确的代码):您可能还应该更正以太层的
layer.chksum
。在UPD:在准备pcap文件时,还可以删除802.1q层tcprewrite(https://linux.die.net/man/1/tcprewrite):
^{pr2}$相关问题 更多 >
编程相关推荐