首页 > 解决方案 > 在 Windows 上使用 C++ 向广播地址发送 (g)ARP 请求

问题描述

我想使用 c++ 在 Windows 10 上发送带有目标地址 (255.255.255.255) 的广播 ARP 请求。我知道 SendARP 功能,但是,它不适用于广播。

还有其他使用 winpcap 和 pcap 标头的方法,但是,我需要在没有除 winsock 之外的外部库的情况下执行此操作。我试着用

SOCKET sock = socket(AF_INET,SOCK_RAW,htons(0x0806));

但是套接字在 Windows 上永远无效。有没有办法在没有 wnpcap 库的情况下实现这种广播 ARP?

=================

尝试的方法:SendARP 用于发送具有特定目标 IP 地址的 ARP 消息,但不能发送到广播消息

https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-sendarp

这里的代码不适用于 Windows。我提取并修改了它,但是套接字无效或 sendto 函数没有发送 ARP 请求。 http://usuaris.tinet.cat/sag/send_arp.htm

标签: c++windowsarp

解决方案


推荐阅读