If you want to monitor/check (every 10s) continuesly if a website (in this exampe http://www.google.de) is reachable using powershell and also using the configured webproxy in your windows system, then you can use the following example:
while ($true) {
$webClient = New-Object System.Net.WebClient
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$webClient.Proxy = $proxy
$proxyUri = $proxy.GetProxy([System.Uri]::new("http://www.google.de"))
$proxyIp = $proxyUri.Host
$proxyPort = $proxyUri.Port
$startTime = Get-Date
try {
$response = $webClient.DownloadString("http://www.google.de")
$endTime = Get-Date
$latency = ($endTime - $startTime).TotalMilliseconds
$statusCode = 200 # WebClient doesn't expose status code directly, assuming success here
Write-Output "[$startTime] Latency: ${latency}ms, HTTP Status Code: $statusCode, Proxy: $proxyIp :$proxyPort"
} catch {
$endTime = Get-Date
$latency = ($endTime - $startTime).TotalMilliseconds
$errorMessage = $_.Exception.Message
Write-Output "[$startTime] Latency: ${latency}ms, Error: $errorMessage, Proxy: $proxyIp :$proxyPort"
}
Start-Sleep -Seconds 10
}
