1
有沒有辦法直接在Windows上使用winsock在鏈接上發送以太網數據包?有沒有辦法直接在windows上使用winsock的鏈接發送以太網數據包?
我需要廣播鏈路上的以太網數據包(即目標MAC地址:廣播(FF:FF:FF:FF:FF:FF))
有沒有辦法直接在Windows上使用winsock在鏈接上發送以太網數據包?有沒有辦法直接在windows上使用winsock的鏈接發送以太網數據包?
我需要廣播鏈路上的以太網數據包(即目標MAC地址:廣播(FF:FF:FF:FF:FF:FF))
這是不可能直接訪問以太網鏈路。這是一個受Windows保護的硬件層。要在特定的以太網適配器上發送數據,您需要bind()
指向該適配器IP地址的套接字,然後您可以根據需要將send()
或sendto()
數據轉換爲目標IP。
廣播數據包,將數據發送到綁定的適配器的子網廣播IP地址,您可以通過使用GetAdaptersInfo()
或GetIpAddrTable()
檢索適配器的IP地址和子網掩碼,然後OR/AND'ing的他們一起動態地計算:
BroadcastIP = (IPAddress & SubnetMask) | ~SubnetMask;