¿Cómo encontrar la dirección MAC en Raspberry Pi?


En algunas redes, puedes configurar una lista blanca de direcciones MAC para permitir solo los dispositivos autorizados.
Probablemente sabes cómo hacer esto en otros sistemas (Windows, por ejemplo), pero puede que necesites ayuda para encontrarlo en Raspberry Pi.
¡Estás en el lugar adecuado :)! Te contaré todo lo que necesitas saber sobre este tema.

La forma más fácil de encontrar la dirección MAC en una Raspberry Pi es utilizar el comando “ifconfig”. La dirección MAC estará justo después de la palabra clave “ether” en la sección correspondiente a su interfaz de red. Se representa como un número hexadecimal de 12 dígitos (AA:BB:CC:DD:EE:FF).

En este tutorial, te mostraré cómo encontrarlo con ifconfig, así como otras formas de encontrarlo en diferentes situaciones.

Encontrar la dirección MAC en Raspbian

Por lo tanto, la primera forma de encontrar su dirección MAC en Raspbian es utilizar ifconfig.
Este comando está disponible en cualquier versión de Raspbian (Lite o Desktop).

En Raspbian Lite, puedes usarlo una vez que hayas iniciado la sesión.
En el Escritorio Raspbian, necesitas abrir una terminal antes de poder usarlo.

Aquí está cómo hacer esto en Raspbian Desktop:

  • Abra el terminal (acceso directo en la barra superior):
  • Escriba el comando ifconfig y pulse Intro.
  • El resultado será este:
  • Puedes ver un párrafo por cada tarjeta de red de tu sistema.
    eth0 corresponde a la tarjeta cableada, y wlan0 es la tarjeta Wi-Fi.
    En cada apartado, puedes ver la configuración IPv4 e IPv6, la dirección MAC y algunas estadísticas sobre la tarjeta de red.
  • La dirección MAC puede verse después de la palabra clave “ether”, aquí:
  • Así, en este caso, la dirección MAC es b8:27:eb:4f:15:95.

Y ya está. Ahora puedes hacer lo mismo en tu Raspberry Pi, y utilizar la dirección MAC en la configuración de tu router.

¡Hola!
Inscríbete para recibir mis últimos tutoriales cada semana.

Obtener la dirección MAC en un escaneo de red

Si tu objetivo no es autorizar a un dispositivo a acceder a su red, sino asignarle una dirección IP estática en el servidor DHCP, también puede escanear la red para encontrar un equipo conectado en la red (incluyendo cualquier Raspberry Pi).

Para ello, me gusta utilizar Advanced IP Scanner en Windows:

  • Empieza por descargarlo aquí: https://www.advanced-ip-scanner.com/.
  • Instálalo como cualquier otra aplicación y luego arrancarlo.
  • Introduce el rango de red a escanear.
    Puede que el software lo detecte automáticamente.
  • Ahora pulsa el botón “Scan”.
  • Después de unos segundos, obtendrás la lista completa de tus dispositivos de red, así:
  • Y como puedes ver en la línea resaltada, ¡también puedes obtener la dirección MAC de la Raspberry Pi de esta manera!

Obtener la dirección MAC en un script

El último escenario que se me ocurre es si necesitas obtener la dirección MAC es un script para usarlo en muchos sistemas Linux, incluyendo algunas Raspberry Pi.
Te mostraré aquí dos formas de hacerlo: en Python y en un script de Shell.

Script de Python

Python es un lenguaje popular en Raspberry Pi, y también está disponible en cualquier sistema operativo.
Por lo tanto, es una buena idea utilizarlo para sus proyectos.

Si necesitas encontrar la dirección MAC de un sistema en Python, hay varias formas de hacerlo.
Yo prefiero mantenerlo simple instalando get-mac y usarlo directamente en tu código.
A continuación se explica cómo hacerlo:

  • Si aún no está instalado, necesita instalar pip en su sistema:
    sudo apt install python-pip
  • Luego instale get-mac con el comando pip:
    sudo pip install get-mac
    La página del proyecto está aquí si necesitas más información.
  • Una vez instalado, puedes utilizarlo en cualquier script de Python como este:
    from getmac import get_mac_address

    eth_mac = get_mac_address()
    print(eth_mac)
  • Hay muchas opciones que puedes utilizar. Por ejemplo, para obtener la dirección MAC de un dispositivo remoto o para especificar si quieres la dirección eth0 o wlan0.
    Toda la información está en el sitio web del proyecto.

Si prefieres no instalar nada en su sistema, puedes utilizar la biblioteca uuid.
La forma más limpia que he encontrado para conseguirlo es la siguiente:

import re,uuid

mac=':'.join(re.findall('..', '%012x' % uuid.getnode()))
print(mac)

uuid.getnode() devuelve el identificador, y es necesario utilizar join y findall para darle el formato correcto.

Si eres nuevo en la programación en Python, te recomiendo que empieces con este artículo (en inglés), que te explicará lo básico. No es complicado, pero tienes que aprender en el orden correcto antes de intentarlo 🙂

Script de shell

El último método que quiero mostrarte es en un script de shell.
En un script de shell, generalmente utilizamos comandos del sistema.
Hasta donde yo sé, no hay un comando para obtener directamente la dirección MAC, pero puedes leer el archivo /sys/class/net/<INTERFACE>/address para leer la dirección MAC utilizada actualmente.

Puedes hacer algo así, por ejemplo:

#!/bin/sh
 
if [ -e /sys/class/net/eth0 ]; then
      MAC=$(cat /sys/class/net/eth0/address)
else
      MAC=$(cat /sys/class/net/wlan0/address)
fi

echo $MAC

Este script intenta leer el archivo correspondiente a eth0.
Si no existe, lee el archivo wlan0.

Conclusión

Eso es todo, ahora sabes cómo obtener la dirección MAC actual en una Raspberry Pi.
Has visto la forma básica (ifconfig), pero también métodos alternativos para obtenerlo dependiendo de tus necesidades.
Si conoces algún otro caso en el que necesites obtenerlo, no dudes en dejar un comentario abajo, para que pueda intentar ayudarte.

Como siempre, gracias por compartir este post en tu red social favorita, si lo encuentras útil :).

Patrick FROMAGET

Hola, soy Patrick. Soy administrador de sistemas Linux, y me apasiona la Raspberry Pi y todos los proyectos sobre este tema. He creado este sitio para compartir con ustedes lo que he aprendido al respecto.

Últimos artículos