Update check-ping.ps1

This commit is contained in:
Markus Fleschutz 2023-06-02 12:41:34 +02:00
parent 140f47049b
commit fa3865a9a9

View File

@ -2,24 +2,24 @@
.SYNOPSIS .SYNOPSIS
Checks the ping latency Checks the ping latency
.DESCRIPTION .DESCRIPTION
This PowerShell script checks the ping latency from the local computer to 9 popular hosts. This PowerShell script checks the ping latency from the local computer to 10 popular hosts.
.PARAMETER hosts .PARAMETER hosts
Specifies the hosts to check, seperated by commata (default is: amazon.com,bing.com,cnn.com,dropbox.com,facebook.com,google.com,live.com,twitter.com,youtube.com) Specifies the hosts to check, seperated by commata (default is: amazon.com,bing.com,cnn.com,dropbox.com,facebook.com,github.com,google.com,live.com,twitter.com,youtube.com)
.EXAMPLE .EXAMPLE
PS> ./check-ping PS> ./check-ping
Ping latency is 13ms...109ms with 25ms average. Ping latency is 13ms...109ms with 25ms average
.LINK .LINK
https://github.com/fleschutz/PowerShell https://github.com/fleschutz/PowerShell
.NOTES .NOTES
Author: Markus Fleschutz | License: CC0 Author: Markus Fleschutz | License: CC0
#> #>
param([string]$hosts = "amazon.com,bing.com,cnn.com,dropbox.com,facebook.com,google.com,live.com,twitter.com,youtube.com") param([string]$hosts = "amazon.com,bing.com,cnn.com,dropbox.com,facebook.com,github.com,google.com,live.com,twitter.com,youtube.com")
try { try {
Write-Progress "⏳ Sending pings to 9 popular hosts..." Write-Host "✅ Ping latency is" -noNewline
$HostsArray = $hosts.Split(",") $HostsArray = $hosts.Split(",")
if ($IsLinux) {
$t = $HostsArray | foreach { $t = $HostsArray | foreach {
(New-Object Net.NetworkInformation.Ping).SendPingAsync($_, 250) (New-Object Net.NetworkInformation.Ping).SendPingAsync($_, 250)
} }
@ -36,22 +36,7 @@ try {
} }
} }
$Avg /= $Count $Avg /= $Count
} else { Write-Host " $($Min)ms...$($Max)ms with $($Avg)ms average"
$Pings = Test-Connection -computerName $HostsArray -count 1
[int]$Min = 9999999
[int]$Max = [int]$Avg = 0
foreach($Ping in $Pings) {
if ($IsLinux) { [int]$Latency = $Ping.latency } else { [int]$Latency = $Ping.ResponseTime }
if ($Latency -lt $Min) { $Min = $Latency }
if ($Latency -gt $Max) { $Max = $Latency }
$Avg += $Latency
}
$Avg /= $Pings.count
}
Write-Progress -Completed "."
Write-Host "✅ Ping latency is $($Min)ms...$($Max)ms with $($Avg)ms average"
exit 0 # success exit 0 # success
} catch { } catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"