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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $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.