42 lines
1.0 KiB
PowerShell
42 lines
1.0 KiB
PowerShell
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$TargetHost,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[int]$Port
|
|
)
|
|
|
|
function Test-Ping {
|
|
param([string]$ComputerName)
|
|
if (Test-Connection -ComputerName $ComputerName -Count 1 -Quiet) {
|
|
Write-Host "[$ComputerName] is reachable via ICMP (ping)."
|
|
}
|
|
else {
|
|
Write-Host "[$ComputerName] did not respond to ICMP (ping)."
|
|
}
|
|
}
|
|
|
|
function Test-Port {
|
|
param([string]$ComputerName, [int]$Port)
|
|
$result = Test-NetConnection -ComputerName $ComputerName -Port $Port -InformationLevel Quiet
|
|
if ($result) {
|
|
Write-Host "[$ComputerName]:$Port is reachable (TCP connect succeeded)."
|
|
}
|
|
else {
|
|
Write-Host "[$ComputerName]:$Port is not reachable."
|
|
}
|
|
}
|
|
|
|
# --- Main execution ---
|
|
Test-Ping -ComputerName $TargetHost
|
|
|
|
if ($Port) {
|
|
Test-Port -ComputerName $TargetHost -Port $Port
|
|
}
|
|
|
|
# Example calls:
|
|
# Test-Ping -Host "8.8.8.8"
|
|
# Test-Port -Host "google.com" -Port 443
|
|
|
|
|
|
Test-NetConnection -ComputerName 192.168.75.125 -Port 5118 |