Vbscript 使用VBS的平均ping时间

Vbscript 使用VBS的平均ping时间,vbscript,ping,Vbscript,Ping,很抱歉重新打开这个问题,但我需要计算对不同服务器的平均响应时间,然后找出哪一个最快 我怎么做?我对VBS非常陌生。您可以将Ansgar Wiechers提供给您的代码绑定到一个函数中: Function AveragePing(p_sAddress) Dim objWMI Dim sQuery Dim sngResponseTime Dim iResponses Dim iCounter Set objWMI = GetObject("winmg

很抱歉重新打开这个问题,但我需要计算对不同服务器的平均响应时间,然后找出哪一个最快


我怎么做?我对VBS非常陌生。

您可以将Ansgar Wiechers提供给您的代码绑定到一个函数中:

Function AveragePing(p_sAddress)
    Dim objWMI
    Dim sQuery
    Dim sngResponseTime
    Dim iResponses
    Dim iCounter

    Set objWMI = GetObject("winmgmts://./root/cimv2")

    sQuery = "SELECT * FROM Win32_PingStatus WHERE address='" & p_sAddress & "'"

    sngResponseTime = 0
    iResponses = 0

    For iCounter = 1 To 2
        For Each pingStatus In objWMI.ExecQuery(sQuery)
            If pingStatus.StatusCode = 0 Then
                sngResponseTime = sngResponseTime + pingStatus.ResponseTime
                iResponses = iResponses + 1
            End If
        Next
    Next

    If iResponses > 0 Then
        AveragePing = sngResponseTime / iResponses
    Else
        AveragePing = -1
    End If

End Function
然后,您可以创建服务器列表并调用此函数以获取每个服务器的平均时间:

Private Sub PingServers()
    Dim dicAddresses
    Dim sAddress
    Dim sngAverage
    Dim sngFastestTime
    Dim sFastestAddress

    Set dicAddresses = CreateObject("Scripting.Dictionary")
    dicAddresses.Add "72.30.35.9", "72.30.35.9"
    dicAddresses.Add "216.58.195.78", "216.58.195.78"

    sngFastestTime = 0

    For Each sAddress In dicAddresses
        sngAverage = AveragePing(sAddress)
        If sngAverage > 0 And (sngFastestTime = 0 Or (sngAverage < sngFastestTime)) Then
            sngFastestTime = sngAverage
            sFastestAddress = sAddress
        End If
    Next

    MsgBox "Fastest ping average was " & FormatNumber(sngFastestTime, 2) & " for " & sFastestAddress

End Sub
专用子服务器()
暗淡的地址
黯淡的女鞍
模糊平均
暗SNG最快时间
暗sFastestAddress
Set diaddress=CreateObject(“Scripting.Dictionary”)
D地址。添加“72.30.35.9”、“72.30.35.9”
D地址。添加“216.58.195.78”、“216.58.195.78”
sngFastestTime=0
对于DiAddress中的每个sAddress
SNG平均值=平均值(鞍形)
如果sngAverage>0且(sngFastestTime=0或(sngAverage
这将帮助您开始。