WEB开发网
开发学院软件开发VC 监听以太网 Packet32包说明 阅读

监听以太网 Packet32包说明

 2010-07-11 20:44:45 来源:WEB开发网   
核心提示:这个函数的操作大致为:网卡的注册表项是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}先打开这个键值;再枚举下面的每一项,依次读取参数:对子项\Linkage\UpperBi

这个函数的操作大致为:

网卡的注册表项是:

HKEY_LOCAL_MACHINE\

SYSTEM\

CurrentControlSet\

Control\

Class\

{4D36E972-E325-11CE-BFC1-08002BE10318}

先打开这个键值;

再枚举下面的每一项,依次读取参数:

对子项\Linkage\UpperBind参数,核对是否等于” NdisWan”,如果不是,就跳过去;

如果是” NdisWan”,则读取子项\Linkage\Export,这就是网卡的名字。

如果前面的查询有网卡记录,那么执行下面这个循环:

将调用PacketOpenAdapter打开每个网卡;

其中将调用PacketRequest(adapter,FALSE,OidData)来得到网卡的描述;

具体方法是这样,OidData是一个PACKET_OID_DATA结构,我们事先设置它的Oid成员为OID_GEN_VENDOR_DESCRIPTION,然后调用PacketRequest把这个OID发送给网卡driver,就可以从OidData->Data中拿到网卡的描述了。

最后调用PacketCloseAdapter关闭适配器。

如果前面没有查询到网卡记录,那么执行我们将根据TCP/IP Binding来查找网卡:

先打开这个键值;

HKEY_LOCAL_MACHINE\

SYSTEM\

CurrentControlSet\

Services\

Tcpip\

Linkage

它的Bind参数设置的就是现在系统上绑定的网卡的名字。

得到名字之后,同上调用PacketOpenAdapter和PacketRequest方法向网卡查询它的描述。

(To be continued)

Writen by zhengyun@tomosoft.com

本文档所包含的信息代表了在发布之日,ZhengYun 对所讨论问题的当前看法,Zhengyun 不保证所给信息在发布之日以后的准确性。

本文档仅供参考。对本文档中的信息,Zhengyun 不做任何明示或默示的保证。

参考文献:

1.如何编写网络监视器 作者:邹建平

2.《Windows NT下开发网络监控程序》 作者:北京锐信科学技术培训中心

上一页  1 2 3 

Tags:监听 以太网 Packet

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接