如何构建一个没有任何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的信息。
基本上,以太网类型应该说如何解析以太网负载。如果你把一些有效载荷,应该有一种方法来解析它。