在vb中使用Iphlpapi.dll获取网络信息 第二章 第七节 获取本机网间控制报文协议(ICMP)信息

来源:互联网 发布:开源软件许可协议 编辑:程序博客网 时间:2024/05/21 10:36

※==================================================================
※本连载文章说明:
※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);
※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;
※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;
※4、谢绝任何收费媒体、网络转载;
※5、原作者:uruseibest ,blog:http://blog.csdn.net/uruseibest;
※6、如有其它疑问,请联系作者;
※7、如有转载,必须连同本说明一并发表,否则将追究转载者责任。
※======================================================================

第七节 获取本机网间控制报文协议(ICMPInternet Control Message Protocol)信息

1、函数:

Private Declare Function GetIcmpStatistics Lib "iphlpapi.dll" (pStats As MIB_ICMP) As Long

参数说明:

pStats[输出] 指向一个本机收到ICMP 统计表的MIB_ICMP类型。

返回值:成功,返回0;失败,返回错误代码。

 

2、使用到的类型:

MIB_ICMP 为特殊适配器包含网间控制报文协议(ICMPInternet Control Message Protocol)统计表。

Public Type MIB_ICMP

    stats As MIBICMPINFO    '指定MIBICMPINFO类型包含了电脑ICMP统计信息表

End Type

 

MIBICMPINFO通过MIBICMPSTATS结构存储的接收或发出的ICMP信息。

Public Type MIBICMPINFO

  icmpInStats As MIBICMPSTATS   '指向MIBICMPSTATS类型,包含接收数据

  icmpOutStats As MIBICMPSTATS '指向MIBICMPSTATS类型,包含发出数据

End Type

 

MIBICMPSTATS包含ICMP (Internet Control Message Protocol)接收或发出的统计信息。

Public Type MIBICMPSTATS

    dwMsgs As Long          '已收发多少消息

    dwErrors As Long          '已收发多少错误

    dwDestUnreachs As Long    '已收发多少"目标不可抵达"消息

    dwTimeExcds As Long            '已收发多少生存期已过消息

    dwParmProbs As Long            '已收发多少表明数据报内有错误IP信息的消息

    dwSrcQuenchs As Long           '已收发多少源结束消息

    dwRedirects As Long        '已收发多少重定向消息

    dwEchos As Long                '已收发多少ICMP响应请求

    dwEchoReps As Long             '已收发多少ICMP响应应答

    dwTimestamps As Long    '已收发多少时间戳请求

    dwTimestampReps As Long        '已收发多少时间戳响应

    dwAddrMasks As Long      '已收发多少地址掩码

    dwAddrMaskReps As Long '已收发多少地址掩码响应

End Type

 

3、使用到的常量:

 

4、主要代码分析:

定义一个MIB_ICMP类型的变量,然后直接调用GetIcmpStatistics

Dim Micmp As MIB_ICMP

r = GetIcmpStatistics(Micmp)

使用Micmp.stats.icmpInStats成员获取收到的数据信息;使用Micmp.stats.icmpOutStats成员获取发送的数据信息。

 

5、运行时截图:

 

原创粉丝点击