The other day I needed to scan a small section of our network which uses static IP addresses rather than DHCP to see which assigned IP addresses actually correlated with a working device and which were no longer being used by an active device. Though there are plenty of fancy tools for this, due to the simplicity of what I wanted I figured it would be easier to throw together a quick PowerShell script than install and learn a third-party tool.
Here’s what I came up with:
$Failure = @() #initialize array #pings IP addresses from 192.168.1.0 to 192.168.1.255 for ($i=0; $i -le 255; $i++) { $IP = "192.168.1." + $i #append the iterator as the last byte of the IP address if(!(Test-Connection -ComputerName $IP -Quiet -Count 2)){ #if noting responds to the ping, add the IP address to an array $Failure += $IP } } Clear-Host foreach ($site in $Failure) { Write-Host $site -ForegroundColor red #iterate through and write results from array }
Note that this runs really slowly, but in this case there wasn’t any rush, so I could let it run in the background for a while.