Лучший способ извлечь MAC-адрес из вывода ifconfig? - PullRequest
61 голосов
/ 29 октября 2008

Каков наилучший способ извлечь MAC-адрес из вывода ifconfig?

Пример вывода:

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
          ....
          ....

Должен ли я использовать cut, AWK или что-то еще, и каковы преимущества и недостатки одного метода перед другим.

Ответы [ 17 ]

0 голосов
/ 27 марта 2015

Хороший и быстрый:

ifconfig eth0 | grep HWaddr | cut -d ' ' -f 11
0 голосов
/ 17 июня 2014

Использование:

ifconfig eth0 | grep HWaddr

или

ifconfig eth0 |grep HWaddr

Это будет тянуть только MAC-адрес и ничего больше.

Вы можете изменить свой MAC-адрес на любой другой:

ifconfig eth0 down,
ifconfig eth0 hw ether (new MAC address),
ifconfig eth0 up
0 голосов
/ 09 ноября 2013
ifconfig | grep -i hwaddr | cut -d ' ' -f11
0 голосов
/ 14 июня 2013

Вывод 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)

Лучший способ извлечь MAC-адрес:

ifconfig | sed '1,1!d' | sed 's/.*HWaddr //' | sed 's/\ .*//' | sed -e 's/:/-/g' > mac_address
0 голосов
/ 29 августа 2012

Примечание: в OS X eth0 может не работать. Используйте p2p0:

ifconfig p2p0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
0 голосов
/ 19 сентября 2018

ifconfig en0 | grep ether - для проводного mac-адреса

ifconfig en1 | grep ether - для беспроводного mac-адреса

0 голосов
/ 06 марта 2013

Это работает для меня в Mac OS X:

ifconfig en0 | grep -Eo ..\(\:..\){5}

Так же:

ifconfig en0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'

Оба варианта являются примерами выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...