ICMP 패킷을 이용하여 Ping 결과를 bool 로 리턴하는 Function을 작성하고, 이를 이용하여 지정된 범위 의 모든 주소에 Ping을 시도하여 Host들의 상태를 확인 한다.
param
(
[Parameter(Mandatory=$true)]
$BaseIp,
$Start = 1,
$End = 255,
$Timeout = 100
)
Function Ping-Target
{
param (
[Parameter(Mandatory=$true)]
[string]$HostNameOrAddress,
[int]$Timeout = 100
)
$pingObject = New-Object System.Net.NetworkInformation.Ping
$pingReply = $pingObject.Send($HostNameOrAddress, $Timeout)
return $pingReply.Status -eq [System.Net.NetworkInformation.IPStatus]::Success
}
$Start..$End | %{ $BaseIp + $_ } |
%{
if ($(Ping-Target $_ $Timeout))
{
Write-Host $($_ + " .. Success") -ForegroundColor Green
}
else
{
Write-Host $($_ + " .. Fail") -ForegroundColor Red
}
}

