regex - otro - saber mi mac kali linux
¿La mejor forma de extraer la dirección MAC de la salida de ifconfig? (16)
Me gusta usar / sbin / ip para este tipo de tareas, porque es mucho más fácil de analizar:
$ ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:30:21:48 brd ff:ff:ff:ff:ff:ff
Puede obtener trivialmente la dirección MAC de esta salida con awk:
$ ip link show eth0 | awk ''/ether/ {print $2}''
00:0c:29:30:21:48
Si desea poner un poco más de esfuerzo y analizar más datos, le recomiendo usar el argumento en línea para el comando ip, que le permitirá tratar cada línea como un nuevo dispositivo:
$ ip -o link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue / link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000/ link/ether 00:0c:29:30:21:48 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000/ link/ether 00:0c:29:30:21:52 brd ff:ff:ff:ff:ff:ff
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 100/ link/[65534]
5: sit0: <NOARP> mtu 1480 qdisc noop / link/sit 0.0.0.0 brd 0.0.0.0
¿Cuál es la mejor forma de extraer la dirección MAC de la salida de ifconfig
?
Muestra de salida:
bash-3.00# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 1F:2E:19:10:3B:52
inet addr:127.0.0.66 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
....
....
¿Debo usar corte, AWK o cualquier otra cosa, y cuáles son los méritos y deméritos de un método sobre el otro.
No estoy seguro de si realmente hay alguna ventaja, pero simplemente puede usar awk:
ifconfig eth0 | awk ''/HWaddr/ {print $5}''
Yo usaría:
ifconfig eth0 | grep -o -E ''([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}''
El -o hará que grep solo imprima la parte de la línea que coincide con la expresión. [[:xdigit:]]{1,2}
coincidirá con 1 o 2 dígitos hexadecimales (Solaris no genera ceros a la izquierda).
Dado que el ejemplo de OP se refiere a Bash, aquí hay una forma de extraer campos como HWaddr sin el uso de herramientas adicionales:
x=$(ifconfig eth0) && x=${x#*HWaddr } && echo ${x%% *}
En el primer paso, esto asigna la salida de ifconfig a x. El 2do paso elimina todo antes de "HWaddr". En el paso final todo lo que se elimine después de "" (el espacio detrás del MAC).
Referencia: http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion
Prefiero el método descrito aquí (con una ligera modificación): http://www.askdavetaylor.com/how_do_i_figure_out_my_ip_address_on_a_mac.html
ifconfig | grep "inet " | grep -v 127.0.0.1 | cut -d " " -f2
Que luego puede alias a un comando corto ''myip'' para uso futuro:
echo "alias myip=/"ifconfig | grep ''inet '' | grep -v 127.0.0.1 | cut -d '' '' -f2/"" >> ~/.bash_profile
Nota: en OS X eth0 puede no funcionar. Use p2p0:
ifconfig p2p0 | grep -o -E ''([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}''
Puedes hacer un gato en /sys/class/
cat /sys/class/net/*/address
Específicamente para eth0
cat /sys/class/net/eth0/address
En Ubuntu 14.04 en terminal
ifconfig | grep HW
Esto funciona para mí en Mac OS X:
ifconfig en0 | grep -Eo ../(/:../){5}
También lo hace:
ifconfig en0 | grep -o -E ''([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}''
Ambas son variaciones de los ejemplos anteriores.
Salida de ifconfig:
$ifconfig
eth0 Link encap:Ethernet HWaddr 00:1b:fc:72:84:12
inet addr:172.16.1.13 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::21b:fcff:fe72:8412/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:638661 errors:0 dropped:20 overruns:0 frame:0
TX packets:93858 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 txqueuelen:1000
RX bytes:101655955 (101.6 MB) TX bytes:42802760 (42.8 MB)
Memory:dffc0000-e0000000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3796 errors:0 dropped:0 overruns:0 frame:0
TX packets:3796 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:517624 (517.6 KB) TX bytes:517624 (517.6 KB)
La mejor forma de extraer la dirección MAC es:
ifconfig | sed ''1,1!d'' | sed ''s/.*HWaddr //'' | sed ''s// .*//'' | sed -e ''s/:/-/g'' > mac_address
Utilizar:
ifconfig eth0 | grep HWaddr
o
ifconfig eth0 |grep HWaddr
Esto extraerá solo la dirección MAC y nada más.
Puede cambiar su dirección MAC a lo que desee:
ifconfig eth0 down,
ifconfig eth0 hw ether (new MAC address),
ifconfig eth0 up
Agradable y rápido:
ifconfig eth0 | grep HWaddr | cut -d '' '' -f 11
Que tal este:
ifconfig eth0 | grep -Eo ../(/:../){5}
o más específicamente
ifconfig eth0 | grep -Eo [:0-9A-F:]{2}/(/:[:0-9A-F:]{2}/){5}
y también uno simple
ifconfig eth0 | head -n1 | tr -s '' '' | cut -d'' '' -f5`
ifconfig | grep -i hwaddr | cut -d '' '' -f11
Necesitaba obtener la dirección MAC del adaptador activo, así que terminé usando este comando.
ifconfig -a | awk ''/^[a-z]/ { iface=$1; mac=$NF; next } /inet addr:/ { print mac }'' | grep -o -E ''([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}''
Espero eso ayude.
ifconfig | grep HW | awk ''{print $5}''
Para Rhat o CentOs prueba ip add | grep link/ether | awk ''{print $2}''
ip add | grep link/ether | awk ''{print $2}''