如何构建一个没有任何protocole Pcap.net c#的以太网数据包?

如何构建一个没有任何protocole Pcap.net c#的以太网数据包?

问题描述:

我按照这个教程PcapDotNet/Pcap.Net。但我会尽力建立一个像这样的图片Ethernet frame如何构建一个没有任何protocole Pcap.net c#的以太网数据包?

private static Packet BuildEthernetPacket() 
    { 
     EthernetLayer ethernetLayer = 
      new EthernetLayer 
      { 
       Destination = new MacAddress("00:00:00:00:00:00"), 
       Source = new MacAddress("11:11:11:11:11:11"), 
       EtherType = EthernetType.None, // I select NONE for no IPV4 or ARP and so one protocole ... 
      }; 

     PayloadLayer payloadLayer = 
      new PayloadLayer 
      { 
       Data = new Datagram(Encoding.ASCII.GetBytes("Hello *")), 
      }; 
     // The probleme it's here but the code build : 
     PacketBuilder builder = new PacketBuilder(ethernetLayer, payloadLayer); 
     return builder.Build(DateTime.Now); 
    } 

Visual Studio中社区检测错误在PcapDotNet.Packets.dll
但是,如果我改变&“System.ArgumentException”“无法从下一层(PcapDotNet.Packets.PayloadLayer)自动确定醚型” EthernetType.None由EthernetType.IpV4或IpV6或ARP等等..没有问题,但我不想添加其他协议。

在此先感谢。

EtherType不能在数据包中为无。 您应该将其设置为某个值。 当它设置为无(或未设置)时,Pcap.Net会尝试使用下一层自动计算它。 但是,代码中的下一层是PayloadLayer,它不提供有关EtherType的信息。

基本上,以太网类型应该说如何解析以太网负载。如果你把一些有效载荷,应该有一种方法来解析它。