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
这将帮助您开始。