¿Cómo puedo encontrar la dirección MAC de mi interfaz Wi-Fi?

10

Quiero determinar la dirección MAC de mi interfaz Wi-Fi en un Raspberry Pi ZW con Raspbian Lite.

¿Hay algún comando que pueda ejecutar para decirme esto? ¿Hay un dispositivo en el /procárbol que lo revelará?

Bex
fuente
1
Ingrese en la terminal ifconfig wlan0Al final de la primera línea debe estar la dirección de hardware, también conocida como MAC.
LotPings
2
@LotPings ¡Podrías hacer eso una respuesta!
joan

Respuestas:

9

El siguiente es un fragmento de un script bash que uso para determinar el MAC de Ethernet, o si no existe WiFi (para Pi Zero W).

No se basa ifconfigni en ningún otro método para detectar la IP asignada, y solo necesita que el sistema detecte el hardware de red.

Esto funciona para Jessie, Stretch o Buster

# Find MAC of eth0, or if not exist wlan0
if [ -e /sys/class/net/eth0 ]; then
    MAC=$(cat /sys/class/net/eth0/address)
elif [ -e /sys/class/net/enx* ]; then
    MAC=$(cat /sys/class/net/enx*/address)
else
    MAC=$(cat /sys/class/net/wlan0/address)
fi

Básicamente, podría usar MAC=$(cat /sys/class/net/wlan0/address)para encontrar el MAC de WiFi incorporado en Pi3 o Pi Zero W.

MAC=$(cat /sys/class/net/wlx*/address) debería funcionar en dongles WiFi en Stretch, pero podría adaptar fácilmente lo anterior para que funcione tanto en Jessie como en Stretch para WiFi y Ethernet.

Milliways
fuente
Muy buena respuesta. ¡Gracias! ¿Raspbian Stretch usa nombres de interfaz de red predecibles? ¿Afectan el nombramiento de la estructura debajo /sys/class/net?
Bex
1
@Bex depende; una instalación nueva utiliza nombres de interfaz de red predecibles de forma predeterminada, no sé acerca de las actualizaciones. Es simple restaurar el comportamiento anterior, consulte Cómo configuro las redes / WiFi / IP estática para más detalles. Se debe mostrar cualquier nombre seleccionado por el proceso de enumeración de hardware. Existen varios métodos para modificar este proceso.
Milliways
10

Ingrese en la terminal / consola ifconfig wlan0Al final de la primera línea debe estar la dirección de hardware, también conocida como MAC.

Aquí una salida de muestra (configuración regional alemana):

pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse b8:27:eb:xx:xx:xx
...
LotPings
fuente
He votado a favor de esta respuesta, pero no creo que ifconfigsea ​​una buena alternativa en el futuro.
Bex
1
De acuerdo, afortunadamente hay dos alternativas.
LotPings
7

Muchas distribuciones está reemplazando ifconfigcon iplo que me gustaría desalentar el uso de ifconfig.

Para mostrar la interfaz wlan0:

ip link show wlan0

o

cat /sys/class/net/wlan0/address

Ref: https://www.linux.com/learn/replacing-ifconfig-ip

MatsK
fuente
Estoy bastante seguro de ifconfigque todavía estará disponible por muchos años. Eliminarlo ahorrará unos miserables 800 kB, rompiendo muchos scripts antiguos.
Dmitry Grigoryev
El problema es que esa persona querría un salario.
Dmitry Grigoryev
1
Seguir usando un comando en desuso en nuevas implementaciones es triste. ¡He visto esto en situaciones relacionadas con el trabajo, y es como empujar el problema frente a ti, y en un momento dado se volverá grande! ¡Comience a lidiar con eso en su lugar!
MatsK
2
En este caso, ip link showes probablemente más apropiado que ip addr show.
Bob
1
En mi sistema de escritorio ejecuto Debian Stretch, que ya no parece tener ifconfigpor defecto, Raspbian Stretch parece tenerlo. Prefiero ipterminar ifconfig, aunque creo que Bob tiene razón al decir que linkprobablemente sea más apropiado que addren este contexto. Sin embargo, la solución que busqué fue leerlo /sys/class/net/wlan0/address, sin necesidad de análisis adicional. Además, lo escribo como cat /sys/class/net/wl*/addressun intento ingenuo de guardarlo para los próximos "nombres de interfaz de red predecibles".
Bex