Skip to content

Instantly share code, notes, and snippets.

@mikebranstein
Created July 27, 2016 13:56
Show Gist options
  • Save mikebranstein/a1f2c08d603fe1395efdcca36f1f7318 to your computer and use it in GitHub Desktop.
Save mikebranstein/a1f2c08d603fe1395efdcca36f1f7318 to your computer and use it in GitHub Desktop.
ARP to IP lookup PowerShell script
# 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