Find List of Used /Unused IP’s in an IP Range using PowerShell

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

 

<#Hi Guys Sharing with you all a script which i made to Find List of Used /Unused IP's in an IP Range
X.X.X. [First 3 Octet's of IP range, Example [(192.168.32.),(10.134.4.),(10.134.8.)]
A..AA [ First and last octet of IPRange [(1..254),(120..254)] inbetween which the IP's need to be found ]#>

A..AA | ForEach {
if (-not (test-connection -Count 1 -comp "X.X.X.$_" -quiet) -and (arp -a X.X.X.$_ -match "No ARP Entries Found."))
{ Write-Host "X.X.X.$_ is Free" -fore green
$info = @{
  'IP_Address'="X.X.X.$_";
  'Availability'="Unused";
  }
 $obj = New-Object -TypeName PSObject -Property $info
 $array+=$obj
}
else {Write-Host "X.X.X.$_ is Used" -fore red
$info = @{
  'IP_Address'="X.X.X.$_";
  'Availability'="Used";
  }
 $obj = New-Object -TypeName PSObject -Property $info
 $array+=$obj
}
}


Example :- Below script can be run to find list of Used / Unused IP's for ISCSI IP's
1..254 | ForEach {
if (-not (test-connection -Count 1 -comp "192.168.32.$_" -quiet) -and (arp -a 192.168.32.$_ -match "No ARP Entries Found."))
{ Write-Host "192.168.32.$_ is Free" -fore green
$info = @{
  'IP_Address'="192.168.32.$_";
  'Availability'="Unused";
  }
 $obj = New-Object -TypeName PSObject -Property $info
 $array+=$obj
}
else {Write-Host "192.168.32.$_ is Used" -fore red
$info = @{
  'IP_Address'="192.168.32.$_";
  'Availability'="Used";
  }
 $obj = New-Object -TypeName PSObject -Property $info
 $array+=$obj
}
}

Share this post

One thought on “Find List of Used /Unused IP’s in an IP Range using PowerShell

Post Comment