¿Cómo encontrar la dirección MAC de una computadora remota?

34

Sé la dirección IP de un host en mi propia LAN. Usando eso, ¿cómo puedo encontrar su dirección MAC (sin tener que acceder físicamente)?

Frederick
fuente

Respuestas:

46

Si está en una máquina con Windows, abra un cuadro de comando (Inicio ... Ejecutar ... cmd), pingla máquina de destino para que haya contactado con ella , y luego emita el comando arp -apara ver su tabla ARP local, que mostrará una lista Direcciones IP y sus correspondientes direcciones MAC, por ejemplo,

C:\Users\L3K> arp -a

Interface: 192.168.200.128 --- 0xb
  Internet Address      Physical Address      Type
  192.168.200.1         00-50-7f-c3-5c-88     dynamic
  192.168.200.2         00-50-7f-d1-e1-40     dynamic
  192.168.200.6         00-80-77-dd-a8-6b     dynamic

Si está en un sistema basado en Linux, instale la arp-scanutilidad, y luego desde una línea de comandos puede solicitar un análisis de su red, en mi caso:

sudo arp-scan 192.168.200.0/24

Si está utilizando una interfaz que no sea Ethernet, por ejemplo, inalámbrica, deberá especificar eso, como

sudo arp-scan -I wlan0 192.168.200.0/24

Si no sabe qué interfaz está utilizando, simplemente use el comando apropiado a continuación.

ifconfig  (For Debian based OS such as Ubuntu)
ip link   (For OS like Arch Linux)
Linker3000
fuente
14
Funcionará solo si otro host está en el mismo segmento LAN.
AnonymousLurker
@ Linker3000, ¿Cuál es el punto de pingantes arp -a?
Pacerier
44
@Pacerier: el comando arp muestra el contenido de la memoria caché del Protocolo de resolución de direcciones, que asigna las direcciones IP a las direcciones de hardware (mac). Si no ha contactado con la dirección IP de destino, entonces no estará en la memoria caché. Ping es una forma simple de contactarlo para agregarlo al caché. Podrías usar cualquier comando de red, es solo que ping es fácil.
Kevin Jones
19

El comando arpingviene con el iputilspaquete en Linux. Especifique una dirección IP para hacer ping y devolverá la dirección MAC, incluso a través de conmutadores y subredes en la LAN (al menos lo hace en nuestra LAN).

# arping -c 1 -I eth0 10.100.10.11
ARPING 10.100.10.11 from 10.100.10.25 eth0
Unicast reply from 10.100.10.11 [00:22:68:88:F3:90]  0.594ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
Joe Zacky
fuente
1
En Debian, hay 2 paquetes: arpingy iputils-arping. El arpingpaquete funcionó para mí, aunque la interfaz de red se especifica con una minúscula i:arping -c 1 -i eth0 10.100.10.11
cronos
8

Tratar

getmac /s hostname

o:

getmac /s IP

Necesita acceso de administrador a la máquina para hacer esto.

Patricio
fuente
¿Por qué no solo usar el arp -aque no necesita acceso de administrador?
Pacerier
2

Si tiene un conmutador administrado o su enrutador le permite ver su tabla ARP, puede obtenerlo desde allí.

Si la computadora para la que tiene la IP está en línea, puede hacer ping y obtener su MAC de su tabla ARP local.

Una nota general por el bien de los demás: no es posible obtener la dirección MAC para máquinas que están en una LAN diferente, ya que los protocolos de Capa 3 se usan para direccionamiento y entrega en este caso y MAC es Capa 2.

imoatama
fuente
Realmente no le di ninguna instrucción sobre "cómo" hacer esto.
GregD
2
En el caso de verlo en el enrutador, simplemente vaya a la interfaz web y busque. No puede ser mucho más específico que eso, ya que cada enrutador tiene un diseño y un conjunto de páginas diferentes para su administrador web. Parece un -1 duro para mí, especialmente porque di más información que MaQleod.
imoatama
2

solo usa algo como:

nmap -n -sP 192.168.146.0/24

después de adaptar los parámetros a su configuración, esto escaneará toda su subred y agregará IP y MAC

chispa
fuente
1

Puede usar una utilidad como http://trogonsoftware.com/trogon-mac-scanner.html u otro escáner de direcciones ip \ mac para escanear la red en busca de direcciones de computadoras remotas en LAN.

boogoo
fuente
También hay muchas opciones gratuitas ... buscando "escáner IP"
JoshP
1

Si tanto su máquina como la máquina de destino están en la misma subred, puede hacer ping para que su asociación IP⟷MAC se registre a través del Protocolo de resolución de direcciones (ARP).

ping -c1 $IP
arp -n | grep $IP

por ejemplo si quiero encontrar la IP de 10.1.135.150:

# ping -c1 10.1.135.150
PING 10.1.135.150 (10.1.135.150) 56(84) bytes of data.
64 bytes from 10.1.135.150: icmp_seq=1 ttl=64 time=1.88 ms

--- 10.1.135.150 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.883/1.883/1.883/0.000 ms

Luego consulta la tabla ARP

# arp -n | grep 10.1.135.150
10.1.135.150             ether   8c:ae:4c:f4:4d:e1   C                     eth0

Entonces el MAC de 10.1.135.150 es 8c:ae:4c:f4:4d:e1

RobM
fuente
0

Mientras no haya una puerta de enlace que enrute el tráfico entre las computadoras, cualquier sniffer le brindará esta información.

Ofir
fuente
Gracias por la respuesta Ofir. Como subpregunta, ¿hay alguna forma de hacerlo si el host en cuestión está inactivo? Sí, podría consultar el caché ARP de mi propio host, pero desafortunadamente actualmente no contiene la IP que me interesa. Entonces, me preguntaba si hay alguna manera de extraer de alguna manera el caché ARP de un enrutador intermediario y buscarlo.
Frederick
0

Siempre puede consultar la tabla arp en su enrutador (en algunos casos, el enrutador combina las tablas de arrendamiento arp y dhcp juntas).

MaQleod
fuente
Exactamente lo que estoy buscando, pero ¿qué herramientas o comandos me ayudarán a hacer eso?
Frederick
Pero espere un minuto, estoy en la misma LAN, por lo que no habrá ningún enrutador, ¿verdad?
Frederick
Las LAN típicas tendrán al menos un enrutador. Dependiendo del enrutador, tiene diferentes opciones de cómo obtenerlo. La mayoría de los enrutadores domésticos necesita acceder a través de la Interfaz Web para encontrar esa información, los enrutadores más complejos le permitirán ingresar o realizar consultas a través del puerto de la consola para obtener esa información.
MaQleod
0

Otra forma es:

nbtstat -a 192.168.1.1

(reemplazar 192.168.1.1con la dirección deseada)


Además, si getmacse usa en una computadora que no sea Windows, obtendría:

ERROR: el servidor RPC no está disponible.

Pacerier
fuente