Python scapy中的伪线以太网控制字支持
scapy中是否支持PW以太网控制字?我需要创建一个包含此控制字的数据包。谢谢大家! 对scapy手册中关于如何构建新层的内容进行了一些研究,我已经编写了这段代码。我从scapy中的mpls代码中获取了一些示例。我已经测试过了,它似乎在包中添加了PW以太网控制字Python scapy中的伪线以太网控制字支持,python,networking,scapy,Python,Networking,Scapy,scapy中是否支持PW以太网控制字?我需要创建一个包含此控制字的数据包。谢谢大家! 对scapy手册中关于如何构建新层的内容进行了一些研究,我已经编写了这段代码。我从scapy中的mpls代码中获取了一些示例。我已经测试过了,它似乎在包中添加了PW以太网控制字 from scapy.packet import Packet, bind_layers, Padding from scapy.fields import IntField from scapy.layers.inet import
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
此外,我还在scapy中的guess\u payload\u类
函数中添加了对mpls.py代码的修改。我认为需要添加以下代码:
elif ip_version == 0:
return PseudowireControlWord
我对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
此外,我还在scapy中的guess\u payload\u类
函数中添加了对mpls.py代码的修改。我认为需要添加以下代码:
elif ip_version == 0:
return PseudowireControlWord