Created
July 27, 2016 13:56
-
-
Save mikebranstein/a1f2c08d603fe1395efdcca36f1f7318 to your computer and use it in GitHub Desktop.
ARP to IP lookup PowerShell script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Gets the IP address of a computer via the MAC address. This will only work on LAN | |
# segments. By default we'll scan the ARP table, but then defer to an IP scan to | |
# as needed. | |
# | |
# Usage: $returnIpAddress = GetIPFromMAC "12-43-de-52-a9-99" "192.168.10." | |
# Pass in the mac address with dashes (-) as the first parameter | |
# Pass in an IP address with the last number missing, be sure to include the trailing "." | |
# Be sure to check the value if $returnIpAddress -eq $null to see if a value was actually returned | |
# | |
function GetIPFromMAC { | |
Param ( | |
[string] $macAddress, | |
[string] $networkSegment | |
) | |
Write-Host "Searching for $macAddress in network segment $networkSegment..." | |
$ip = arp -a | Select-String $macAddress |% { $_.ToString().Trim().Split(" ")[0] } | |
if ($ip -eq $null) { | |
Write-Host "$macAddress not found in ARP table, deep scan starting..." | |
for ($i = 1; $i -lt 255; $i++) { | |
ping "$networkSegment$i" -n 1 -l 1 -4 -w 500 | Out-Null | |
$ip = arp -a "$networkSegment$i" | Select-String $macAddress |% { $_.ToString().Trim().Split(" ")[0] } | |
if ($ip -ne $null) { | |
Write-Host "Found $macAddress during deep scan, IP: $ip" | |
break | |
} | |
} | |
} | |
return $ip | |
} | |
#MacAddress Device Rename | |
Write-Host "Getting Ip-Address from MAC Address" | |
$ipAddress = GetIPFromMac -macAddress $macAddress -networkSegment $networkSegment | |
Write-Host "Found IP Address: $ipAddress" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment