vbpcap常用属性

属性名 描述
HWFilter 设置/返回网卡的工作模式,如果设置为混杂模式PACKET_TYPE_PROMISCUOUS,抓取流经该网卡的所有包
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编写程序的一般步骤

使用vbpcap编写数据包捕获程序的一般步骤:

  1. 建立一个vbpcap对象
  2. 打开网卡
  3. 获得网卡IP和掩码
  4. 通过HWFilter属性,设置网卡的工作模式
  5. 设置ReadTimeOut属性
  6. 分配空间
  7. 设置vbpcap.dll内部缓冲器的大小
  8. 设置网卡缓冲器的大小
  9. 开始捕获
  10. 在数据包捕获事件中,对捕获到的数据包进行处理。