vbpcap常用属性、方法和事件
vbpcap常用属性
属性名 | 描述 |
---|---|
HWFilter | 设置/返回网卡的工作模式,如果设置为混杂模式PACKET_TYPE_PROMISCUOUS,抓取流经该网卡的所有包 |
BufferSize | 设置/返回网卡缓冲器的大小 |
LinkSpeed | 返回网卡的链接速率 |
LinkType | 返回网卡的链接类型 |
PacketsDropped | 返回漏包数PacketsReceived 返回捕获数据包数 |
vbpcap常用方法
- GetAdapterNames (AdapterNamesStr as String) as Long,获取网卡名,调用该方法,把获取到的本机上的“网卡名列表”填入变量AdapterNameStr中,注意,AdapteName应被定义为长度固定的字符变量。如Dim AdapterNames As String * 1000
- OpenAdapter(AdapterName as String) as Long ,打开网卡,其中AdapterName为获取网卡方法中传入的参数AdapterNameStr
- AllocatePacket() as Long,为数据包分配空间
- InitPacket(BufferSize as Long) as Long,设置和初始化vbpcap.dll内部使用的缓冲器
- FreePacket(),清空vbpcap.dll内部缓冲器
- StartCapture(),开始捕获
- GetRawPacketData(ArrayOfBytes() as Bytes),获得原始数据包数据,把存放在Buffer中的数据包数据拷贝到数组ArrayOfBytes()中,该数组为byte类型。
- StopCapture(),停止捕获
- CloseAdapter(),关闭网卡
- 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编写数据包捕获程序的一般步骤:
- 建立一个vbpcap对象
- 打开网卡
- 获得网卡IP和掩码
- 通过HWFilter属性,设置网卡的工作模式
- 设置ReadTimeOut属性
- 分配空间
- 设置vbpcap.dll内部缓冲器的大小
- 设置网卡缓冲器的大小
- 开始捕获
- 在数据包捕获事件中,对捕获到的数据包进行处理。