En Ubuntu, con el comando ifconfig -a, obtengo toda la información sobre mis interfaces ethernet / wifi.
Pero necesito obtener como salida solo la dirección MAC, como:
ab:cd:ef:12:34:56
57:89:12:34:ac:23
12:34:56:ab:cd:ef
¿Cómo puedo obtener esto?
command-line
networking
simone_s1994
fuente
fuente

LANG=C ifconfig -alugar deifconfig -ainstalaciones que no estén en inglés, puede haber problemas con grep. (es decir, en mi sistema,HWaddresdirecciónHW)ifconfig -a | grep -i hw-*:?-*supone que eso significa algo?HWpero dijoHWaddry en español como supongo / veo,direcciónHWasí que simplementeHWpuede ser;)grep"es altamente experimental". Si desea utilizar expresiones regulares básicas, el comando es equivalenteifconfig -a | grep -o 'HWaddr [[:xdigit:]:]*'o, si lo prefiere,ifconfig -a | grep -o 'HWaddr [a-f0-9:]*'. He omitido el final$porque la salida incluye espacios después de la dirección MAC, y probablemente no quieras esos.Puede acceder al
addressarchivo para cada dispositivo en el/syssistema de archivos virtual. La dirección MAC debe estar en/sys/class/net/<device-name>/address:Para todos los dispositivos:
fuente
iptambién ha existido durante años.Aquí hay algunas maneras:
grep. Hay varias expresiones regulares que las recogerán. Aquí, estoy buscando 5 repeticiones de 2 letras o números seguidos de dos puntos, luego dos caracteres. Esto-ihace que las mayúsculas y minúsculas no-osean sensibles y lasgrepimpresiones solo imprimen la parte coincidente.-Ehabilita expresiones regulares extendidas. La misma expresión regular también funciona con PCRE (-P).sed. El-nsuprime la producción normal y la-rpermite expresiones regulares extendidas. Usando la misma expresión regular anterior, esta secuencia de comandos intentará reemplazar todo en la línea con la parte que coincida con la expresión regular. Si la sustitución fue exitosa, se imprime la línea resultante (debidopal final de la sustitución).awk. Si la línea comienza con un carácter de palabra ([a-zA-Z0-9_]) y tiene 5 campos, imprima el último.Perl, donde, como siempre, hay más de una forma de hacerlo. Esta es la misma lógica que la
awkanterior. El-ale dice a Perl que divida cada línea de entrada en la@Fmatriz.Alternativamente, puede usar la expresión regular de los enfoques anteriores:
Coreutils.
fuente
Como algunos han comentado,
ifconfigestá en desuso a favor delipcomando. Entonces, combinando las diversas soluciones y comentarios, usaría:fuente
ifconfig -a | grep HWaddr | awk '{print $5}'Si el resultado de su sistema no es inglés en este comando, entonces tiene sentido ejecutarlo de esta manera.
LANG=C ifconfig -a | grep HWaddr | awk '{print $5}'Esto es aplicable a todas las soluciones.
fuente
grepseparado, puede filtrarawkdirectamente de esta manera:ifconfig -a | awk '/HWaddr/ { print $5 }'LANG=C ifconfig -alugar deifconfig -ainstalaciones que no estén en inglés, puede haber problemas con grep. (es decir, en mi sistema,HWaddresdirecciónHW)@Helioal comienzo del comentario. Si no, no seré notificado.