有没有办法直接在Windows上使用winsock链接发送以太网数据包?
我需要在链接上广播一个以太网数据包(例如,目的地Mac地址:广播(ff:ff:ff:ff:ff:ff))
不可能直接访问以太网链路。 这是一个受Windows保护的硬件层。 要在特定以太网适配器上发送数据,需要bind()
套接字bind()
到该适配器的IP地址,然后可以根据需要send()
或sendto()
数据发送到目标IP。
要广播数据包,请将数据发送到绑定的适配器的子网广播IP地址,您可以使用GetAdaptersInfo()
或GetIpAddrTable()
动态计算以获取适配器的IP地址和子网掩码,然后将它们OR / AND:
BroadcastIP = (IPAddress & SubnetMask) | ~SubnetMask;