Resolviendo la dirección MAC de la dirección IP en Linux

39

Necesito escribir un script bash en el que tenga que crear un archivo que contenga los detalles de las direcciones IP de los hosts y su asignación con las direcciones MAC correspondientes.

¿Hay alguna forma posible de encontrar la dirección MAC de cualquier host (remoto) cuando la dirección IP del host está disponible?

Mandar Shinde
fuente

Respuestas:

36

Si solo desea averiguar la dirección MAC de una dirección IP determinada, puede usar el comando arppara buscarla, una vez que haya pinchado el sistema 1 vez.

Ejemplo

$ ping skinner -c 1
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_seq=1 ttl=64 time=3.09 ms

--- skinner.bubba.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.097/3.097/3.097/0.000 ms

Ahora busque en la tabla ARP:

$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0

fing

Si desea barrer toda la LAN para direcciones MAC, puede usar la herramienta de línea de comando fingpara hacerlo. Por lo general, no está instalado, por lo que deberá descargarlo e instalarlo manualmente.

$ sudo fing 10.9.8.0/24

    ejemplo de fing

Usando ip

Si encuentra que no tiene los comandos arpo fingdisponibles, puede usar el comando iproute2 ip neighpara ver la tabla ARP de su sistema:

$ ip neigh
192.168.1.61 dev eth0 lladdr b8:27:eb:87:74:11 REACHABLE
192.168.1.70 dev eth0 lladdr 30:b5:c2:3d:6c:37 STALE
192.168.1.95 dev eth0 lladdr f0:18:98:1d:26:e2 REACHABLE
192.168.1.2 dev eth0 lladdr 14:cc:20:d4:56:2a STALE
192.168.1.10 dev eth0 lladdr 00:22:15:91:c1:2d REACHABLE

Referencias

slm
fuente
Sé que esta es una respuesta anterior, pero ¿tiene alguna idea de cómo se implementa Fing? Estoy tratando de aprender sobre esta capa de redes y las herramientas para monitorearla.
akaphenom
1
@akaphenom Si tiene nuevas preguntas, por favor hágalo directamente, los comentarios no están destinados a eso.
slm
pero no está en arpdesuso? ¿Cómo puedo hacer esto con ip?
math2001
1
@ math2001 - no fue hace 5 años, agregué un ejemplo que muestra cómo usarlo ip.
slm
8

Puedes usar el arpcomando:

arp -an

Pero solo puede usar este comando en LAN, si desea averiguar la dirección MAC de cualquier host remoto, tal vez deba usar alguna herramienta para capturar el paquete tcpdumpy analizar el resultado.

Cuonglm
fuente
2
tcpdump(8)solo le mostrará los MAC locales (es decir, el MAC del último enrutador de tramo). El enrutador elimina los encabezados de capa MAC de los paquetes de entrada, y se agregan otros nuevos al paquete saliente.
vonbrand
5

Esto es de mi pregunta y respuesta en askubuntu .

Puedes usar el comando

   sudo nmap -sP -PE -PA21,23,80,3389 192.168.1.*

nmap:Herramienta de exploración de red y escáner de seguridad / puerto. Del manual:

-sP(Saltar escaneo de puertos). Esta opción le dice a Nmap que no realice un escaneo de puertos después del descubrimiento del host, y solo imprima los hosts disponibles que respondieron al escaneo. Esto a menudo se conoce como un "escaneo de ping", pero también puede solicitar que se ejecuten los scripts de host traceroute y NSE. Este es, por defecto, un paso más intrusivo que el escaneo de la lista, y a menudo se puede utilizar para los mismos fines. Permite el reconocimiento ligero de una red objetivo sin atraer mucha atención. Saber cuántos hosts están activos es más valioso para los atacantes que la lista proporcionada por el análisis de la lista de cada IP y nombre de host.

-PE; -PP; -PM (Tipos de ping ICMP). Además de los tipos de descubrimiento de host TCP, UDP y SCTP inusuales discutidos anteriormente, Nmap puede enviar los paquetes estándar enviados por el omnipresente programa de ping. Nmap envía un paquete ICMP tipo 8 (solicitud de eco) a las direcciones IP de destino, esperando un tipo 0 (respuesta de eco) a cambio de los hosts disponibles. Desafortunadamente para los exploradores de red, muchos hosts y firewalls ahora bloquean estos paquetes, en lugar de responder como requerido por RFC 1122 [2]. Por esta razón, los escaneos solo ICMP rara vez son lo suficientemente confiables contra objetivos desconocidos en Internet. Pero para los administradores de sistemas que monitorean una red interna, pueden ser un enfoque práctico y eficiente. Use la opción -PE para habilitar este comportamiento de solicitud de eco.

-A(Opciones de escaneo agresivo). Esta opción habilita opciones avanzadas y agresivas adicionales.

21,23,80,3389 Puertos para buscar

192.168.1.* Rango de IPs. reemplazar con el tuyo

Maythux
fuente
-sP es para "scanPing", también es -sn en versiones nunca nmap de lo que parece.
meawoppl
4

arping

arping -I <interface> -c 1 <host>

El comando debe devolver la dirección MAC en la respuesta. Algo como,

$ arping -I eth0 -c1 192.168.1.2
ARPING 192.168.1.2 from 192.168.1.5 eth0
Unicast reply from 192.168.1.2 [08:01:27:38:EF:32]  0.746ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

arpingse proporciona por paquete iputils-arpingen Debian.

hombre Gancho
fuente
arpingTambién necesita saber qué interfaz usar, con la -Iopción.
Stephen Kitt
Puede usar arping -f para salir después de la primera respuesta.
Ryan Griggs