arp知识整理

来源:互联网 发布:vb elseif 用法 编辑:程序博客网 时间:2024/05/22 07:09

首先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