【问题标题】:Pseudowire ethernet control word support in scapyscapy中的伪线以太网控制字支持
【发布时间】:2017-10-02 12:15:17
【问题描述】:

scapy 中是否支持 PW 以太网控制字?我需要创建一个包含此控制字的数据包。谢谢!

【问题讨论】:

    标签: python networking scapy


    【解决方案1】:

    对如何构建新层的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多