2017-10-02 1 views

답변

1

새로운 레이어를 작성하는 방법에 대한 scapy 매뉴얼에 대한 연구를했고이 코드를 작성했습니다. 내가 scapy에서 mpls 코드에서 몇 가지 예를했다. 나는 그것을 테스트했으며 패킷에 PW Ethernet Control Word를 추가하는 것으로 보인다.

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 

또한 I는 guess_payload_class 함수 scapy에 mpls.py 코드 변형을 추가했다. 다음 코드를 추가해야한다고 생각합니다.

elif ip_version == 0: 
    return PseudowireControlWord 
관련 문제