有没有办法直接在Windows上使用winsock链接发送以太网数据包?

有没有办法直接在Windows上使用winsock链接发送以太网数据包?

我需要在链接上广播一个以太网数据包(例如,目的地Mac地址:广播​​(ff:ff:ff:ff:ff:ff))

Solutions Collecting From Web of "有没有办法直接在Windows上使用winsock链接发送以太网数据包?"

不可能直接访问以太网链路。 这是一个受Windows保护的硬件层。 要在特定以太网适配器上发送数据,需要bind()套接字bind()到该适配器的IP地址,然后可以根据需要send()sendto()数据发送到目标IP。

要广播数据包,请将数据发送到绑定的适配器的子网广播IP地址,您可以使用GetAdaptersInfo()GetIpAddrTable()动态计算以获取适配器的IP地址和子网掩码,然后将它们OR / AND:

 BroadcastIP = (IPAddress & SubnetMask) | ~SubnetMask;