【发布时间】:2017-10-02 12:15:17
【问题描述】:
scapy 中是否支持 PW 以太网控制字?我需要创建一个包含此控制字的数据包。谢谢!
【问题讨论】:
标签: python networking scapy
scapy 中是否支持 PW 以太网控制字?我需要创建一个包含此控制字的数据包。谢谢!
【问题讨论】:
标签: python networking scapy
对如何构建新层的 scapy 手册进行了一些研究,我已经编写了这段代码。我从 scapy 中的 mpls 代码中举了一些例子。我已经测试过了,它似乎在数据包中添加了 PW 以太网控制字。
from scapy.packet import Packet, bind_layers, Padding
from scapy.fields import IntField
from scapy.layers.inet import IP
from scapy.layers.inet6 import IPv6
class PseudowireControlWord(Packet):
name = "PseudowireControlWord"
fields_desc = [IntField("SeqNumber", 0)]
def guess_payload_class(self, payload):
if len(payload) >= 1:
ip_version = (ord(payload[0]) >> 4) & 0xF
if ip_version == 4:
return IP
elif ip_version == 6:
return IPv6
return Padding
我还在guess_payload_class函数的scapy中添加了mpls.py代码的修改。我认为需要添加以下代码:
elif ip_version == 0:
return PseudowireControlWord
【讨论】: