我正在使用一种协议,在该协议中,我必须监听这样的帧:
这些帧不是IP帧,并且源地址和目标地址是OUI特定的MAC地址。我可以确定目标MAC地址将始终是多播MAC地址(第一个八位位组的第一位是1
)。
这些框架是“已发布”或“广播”的,我想为其编写套接字侦听器,而无需使用诸如SharpPcap或Pcap.Net之类的第三方库。
我基本上想做的就是用奇怪的EtherType 0x88b8
接收这些帧。
我在其他地方听说过,如果我不想使用第三方库,则必须使用修改后的NDIS驱动程序。我愿意这样做。
但是我想知道它是否需要这么复杂。如果这些帧的目标MAC是多播地址,我想知道是否缺少我可以利用的东西。我想知道这些帧是否可以在D类组播IP地址周围浮动,而我只需要听224.0.0.0
。
我看到了很多有关发送原始以太网数据包的问题,但没有收到原始数据包的问题,这显然要容易得多。所以我的最终问题是,是否有一种方法可以仅使用.NET Framework或Core?
我一直在尝试这样的事情,
Socket client = new Socket(AddressFamily.Unspecified, SocketType.Unknown, ProtocolType.Unspecified);
并尝试从此处缩小范围,但这仍然行不通。