Você pode usar o Nmap para fazer uma varredura ARP muito rápida usando a seguinte sintaxe.
nmap -sn -PR -oX nmap.xml 192.168.1.0/24
Isso usa ping ARP (somente solicitações ARP, sem ICMP, UDP ou TCP, sem verificação de porta) para verificar o intervalo de endereços IP especificado e registrar as respostas de endereço IP / endereço MAC / nome do host em um arquivo XML (nmap.xml) .
Eu escrevi um script PowerShell que munges o arquivo XML e cospe um CSV . Isso também filtra os hosts inativos. Acho isso mais fácil de usar no Excel do que o arquivo XML. Aqui está o script, se alguém estiver interessado.
# Define nmap input file
$NmapXMLFile = ".\nmap.xml"
# Initialize object array
$HostItems = @()
# Initialize index
$x = 0
# Load XML
[xml]$NmapXML = Get-Content $NmapXMLFile
# Loop through XML
ForEach ($HostNode in $NmapXML.nmaprun.host) {
# Check host status
If ($HostNode.status.state -eq "up") {
# Create host object
$HostObj = "" | Select-Object ID, Hostname, 'IP Address', 'MAC Address', Vendor
# Store ID and increment index
$HostObj.ID = $x += 1
# Store hostname
$HostObj.Hostname = $HostNode.hostnames.hostname.name
# Loop through addresses
foreach ($HostAddress in $HostNode.address) {
# Check IP address
If ($HostAddress.addrtype -eq "ipv4") {
# Store IP address
$HostObj.'IP Address' = $HostAddress.addr
}
# Check MAC address
If ($HostAddress.addrtype -eq "mac") {
# Store MAC address
$HostObj.'MAC Address' = $HostAddress.addr
# Store vendor
$HostObj.Vendor = $HostAddress.vendor
}
}
# Append host object to array
$HostItems += $HostObj
}
}
# Print host items
$HostItems
# Export host items to CSV
$HostItems | Export-CSV -NoType .\nmap.csv