miscellaneous-scripts/ua-connectivity-check/TcpCheck.ps1

58 lines
1.3 KiB
PowerShell

#
# TcpCheck.ps1
#
. '.\Common.ps1'
$endPoints = New-Object System.Collections.Generic.List[Object]
Write-Output "`r`n`r`nTCP CONNECTIVITY TEST:`r`n"
$defaultPorts = @(80,443)
$nonDefaultPortMap = @{
'204.26.248.58' = @(53310, 53330) #Shares
'57.14.12.254' = @(102) #Unimatic
'10.232.100.72' = @(50002) #GateReader alternative
'57.228.112.12' = @(50002) #GateReader primary
'57.14.12.21' = @(443)
'57.14.12.24' = @(443)
'57.14.12.20' = @(443)
'57.14.13.142' = @(443)
'57.14.13.143' = @(443)
'57.14.13.144' = @(443)
'57.14.13.24' = @(443)
'57.14.12.122' = @(80)
};
if ($null -ne $ipHashTable) {
foreach ($ip in $ipHashTable.Keys)
{
$ports = @()
if ($nonDefaultPortMap.ContainsKey($ip)) {
$ports = $nonDefaultPortMap[$ip]
}
else {
$ports = $defaultPorts
}
foreach ($port in $ports) {
$thisEndPoint = New-Object PSObject -Property @{
Host = [string]$ip
Port = [int]$port
}
$endPoints.Add($thisEndPoint);
}
}
}
# REMOVED: -Parallel only works in newer powershell versions
# # Asynchronous port check
# $isPortOpenDef = $function:IsPortOpen.ToString()
# $endPoints | ForEach-Object -Parallel {
# $function:IsPortOpen = $using:isPortOpenDef
# IsPortOpen -hostName $_.Host -port $_.Port
# }
# Synchronous port check
foreach ($endPoint in $endPoints) {
IsPortOpen -hostName $endPoint.Host -port $endPoint.Port
}