Лучший способ получить MAC из eth0?


20

Есть ли более эффективный способ получить MAC-адрес сетевой карты в Linux?

Это работает:

ip link show dev eth0 | awk ' /link\/ether/ { print $2 }'

но можно ли найти что-то вроде:

cat /sys/net/something

Ответы:


27

Это в /sys/class/net/eth0/address(или, точнее, /sys/devices/pciXXXX:XX/XXXX/net/eth0/addressгде XXX - это идентификатор вашей шины PCI, но это зависит от системы).

(Между прочим, я нашел это find /sys -name eth0и, просматривая файлы в указанных каталогах.)


4

Это также доступно через ifconfig:

kce@thinkpad:~$ /sbin/ifconfig eth0 |grep HWaddr
eth0      Link encap:Ethernet  HWaddr 00:1e:37:cc:ce:cc  

Или, если вы хотите просто MAC-адрес:

kce@thinkpad:~$ /sbin/ifconfig eth0 |awk '/HWaddr/{print $5}'
00:1e:37:cc:ce:cc

2
Ну, тебе все равно придется пробудить или сократить его. Потому что мак в конце строки.
Бродул

3

Если вы можете установить moreutilsпакет, есть ifdataинструмент. Описание говорит:

ifdata: получить информацию о сетевом интерфейсе без разбора вывода ifconfig

Вот пример:

me@box:~$ ifdata -ph eth0
00:21:86:61:35:44
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.