vb.net 第七节 获取本机网间控制报文协议信息 GetIcmpStatistics

Posted VB.Net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net 第七节 获取本机网间控制报文协议信息 GetIcmpStatistics相关的知识,希望对你有一定的参考价值。

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。


Imports System.Runtime.InteropServices

Public Class Form8

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

    'Public Type MIBICMPINFO
    '  icmpInStats As MIBICMPSTATS   '指向MIBICMPSTATS类型,包含接收数据
    '  icmpOutStats As MIBICMPSTATS 	'指向MIBICMPSTATS类型,包含发出数据
    'End Type

    '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

    <StructLayout(LayoutKind.Sequential)>
    Structure MIB_ICMP
        Dim stats As MIBICMPINFO    '指定MIBICMPINFO类型包含了电脑ICMP统计信息表
    End Structure

    <StructLayout(LayoutKind.Sequential)>
    Structure MIBICMPINFO
        Dim icmpInStats As MIBICMPSTATS   '指向MIBICMPSTATS类型,包含接收数据
        Dim icmpOutStats As MIBICMPSTATS    '指向MIBICMPSTATS类型,包含发出数据
    End Structure

    <StructLayout(LayoutKind.Sequential)>
    Structure MIBICMPSTATS
        Dim dwMsgs As Integer          '已收发多少消息
        Dim dwErrors As Integer            '已收发多少错误
        Dim dwDestUnreachs As Integer      '已收发多少"目标不可抵达"消息
        Dim dwTimeExcds As Integer         '已收发多少生存期已过消息
        Dim dwParmProbs As Integer         '已收发多少表明数据报内有错误IP信息的消息
        Dim dwSrcQuenchs As Integer     '已收发多少源结束消息
        Dim dwRedirects As Integer         '已收发多少重定向消息
        Dim dwEchos As Integer             '已收发多少ICMP响应请求
        Dim dwEchoReps As Integer       '已收发多少ICMP响应应答
        Dim dwTimestamps As Integer        '已收发多少时间戳请求
        Dim dwTimestampReps As Integer  '已收发多少时间戳响应
        Dim dwAddrMasks As Integer     '已收发多少地址掩码
        Dim dwAddrMaskReps As Integer  '已收发多少地址掩码响应
    End Structure

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

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim micmp As New MIB_ICMP
        Dim returnValue As Integer
        returnValue = GetIcmpStatistics(micmp)

        '请自行增加代码
    End Sub
End Class

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供的参考。

学习更多vb.net知识,请参看 vb.net 教程 目录

以上是关于vb.net 第七节 获取本机网间控制报文协议信息 GetIcmpStatistics的主要内容,如果未能解决你的问题,请参考以下文章

vb.net 第三节 获取本机TCP 信息列表 GetTcpStatistics

vb.net 第五节 获取本机UDP信息列表 GetUdpStatistics

数据链路层-第七节:广域网和PPP协议

数据链路层-第七节:MAC地址IP地址和ARP协议

第七节:Spring

Linux学习第七节课(2019.9.20)