Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1330623
  • 博文数量: 124
  • 博客积分: 5772
  • 博客等级: 大校
  • 技术积分: 1647
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-27 10:39
文章分类

全部博文(124)

文章存档

2020年(1)

2019年(1)

2018年(5)

2017年(2)

2016年(17)

2015年(3)

2014年(7)

2013年(11)

2012年(13)

2011年(30)

2010年(34)

分类: WINDOWS

2010-09-27 11:03:07

vbpcap常用的属性有:
 
 

属性名 描述
HWFilter 设置/返回网卡的工作模式,如果设置为混杂模式
                        PACKET_TYPE_PROMISCUOUS,抓取流经该网卡的所有包ReadTimeOut 设置/返回读数据包超时时间
BufferSize 设置/返回网卡缓冲器的大小
LinkSpeed 返回网卡的链接速率
LinkType 返回网卡的链接类型
PacketsDropped 返回漏包数PacketsReceived 返回捕获数据包数

 
 
vbpcap的常用方法:
1.GetAdapterNames (AdapterNamesStr as String) as Long,获取网卡名,调用该方法,把获取到的本机上的“网卡名列表”填入变量AdapterNameStr中,注意,AdapteName应被定义为长度固定的字符变量。如Dim AdapterNames As String * 1000
2.OpenAdapter(AdapterName as String) as Long ,打开网卡,其中AdapterName为获取网卡方法中传入的参数AdapterNameStr
3.AllocatePacket() as Long,为数据包分配空间
4.InitPacket(BufferSize as Long) as Long,设置和初始化vbpcap.dll内部使用的缓冲器
5.FreePacket(),清空vbpcap.dll内部缓冲器
6.StartCapture(),开始捕获
7.GetRawPacketData(ArrayOfBytes() as Bytes),获得原始数据包数据,把存放在Buffer中的数据包数据拷贝到数组ArrayOfBytes()中,该数组为byte类型。
8.StopCapture(),停止捕获
9.CloseAdapter(),关闭网卡
10.GetNetInfo(AdapterName as string,netIP as long,netMask as long),获取网卡的IP地址和子网掩码,AdapterName为通过GetAdapterNames方法返回的网卡名,netIP和netMask为存放网卡IP地址和子网掩码的变量,注意,这里的IP地址和子网掩码都是以long型数据来表示的。

vbpcap的常用事件:
vbpcap的事件只有一个,PacketReceived(numerofbytes As Long),该事件在接收到一个数据包时被触发,返回的参数为该数据包的字节数。
 
使用vbpcap编写数据包捕获程序的一般步骤:
1.建立一个vbpcap对象
2.打开网卡
3.获得网卡IP和掩码
4.通过HWFilter属性,设置网卡的工作模式
5.设置ReadTimeOut属性
6.分配空间
7.设置vbpcap.dll内部缓冲器的大小
8.设置网卡缓冲器的大小
9.开始捕获
10.在数据包捕获事件中,对捕获到的数据包进行处理。
 


阅读(2204) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-30 10:47:13

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com