2013-04-09 74 views
0

在VC++上发送免费ARP请求和接收ARP应答包需要什么类型的RAW套接字。在VC++上发送RAW套接字的类型免费ARP请求和接收ARP应答包

int s = socket(AF_PACKET,SOCK_DGRAM,htons(ETH_P_ARP));

什么应该是Windows的相应代码?

+0

[我可以使用Winsock构造和发送ARP数据包,还是接收ARP数据包?如何?](http://stackoverflow.com/questions/8102629/can-i-use-winsock-to-construct-and-send-arp-packets-or-receive-arp-packets-how) – 2013-04-09 19:40:34

+0

我需要生成免费ARP请求来检查不在我计算机接口的子网中的IP地址是否存在。 SendArp()不能做到这一点。 – 2013-04-10 06:52:00

回答

0

我一直在想弄清楚同样的事情。 但是看起来你不能在windows中这样做:在windows中你只能构建Internet层数据包,但ARP在链路层。所以,如果你真的必须这样做,你需要使用我认为的winPcap。

0

是的。如果是以太网,Windows不允许您发送RAW流量,但可以发送RAW以太网流量。

因此,如果您构建自己的以太网报头,则可以发送ARP数据包。