首先WpdPack和libnet是必须的sourceforge.net上有两个libnet项目,
一个是旧的2000开始就不维护了一个是新的叫libnet-dev项目。
WinPcap很有名的项目可以找到全中文的开发资料在
http://www.cnitblog.com/CoffeeCat/archive/2008/03/11/34588.html
arp的基础知识看ibm文库的
http://www.ibm.com/developerworks/cn/linux/l-arp/index.html#N10037
为什么必须要上面两个项目呢因为arp协议本身是一个有漏洞的协议。在windows下是
没有完整的开发arp协议的开发接口,其实也就是win32不建议程序员开发arp相关的底层
协议,其实arp协议也没有什么可以应用开发,唯一的应用可能就是为了攻击的目的。
既然win32没有提供相关的底层网络接口那么只好使用winpcap库和libnet库。
libnet的例子里面有一个arp的工程稍加修改基本可以满足要求。
虽说没有提供接口,在win系统也是可以开发arp协议但有些复杂。
详细可以见如下的帖子
http://bbs.driverdevelop.com/read.php?tid-42356.html
实际操作中arp协议还是有一些基本的检查例如
发送的mac地址必须和发送方的地址保持一致等等。
虽然限制很多,因为本身就是一个争用协议,让对方不能上网还是很容易办到。
要注意libnet是发送包的库,接受包要使用winpcap的过滤api