Есть ли более эффективный способ получить MAC-адрес сетевой карты в Linux?
Это работает:
ip link show dev eth0 | awk ' /link\/ether/ { print $2 }'
но можно ли найти что-то вроде:
cat /sys/net/something
Это в /sys/class/net/eth0/address
(или, точнее, /sys/devices/pciXXXX:XX/XXXX/net/eth0/address
где XXX - это идентификатор вашей шины PCI, но это зависит от системы).
(Между прочим, я нашел это find /sys -name eth0
и, просматривая файлы в указанных каталогах.)
Это также доступно через 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
Если вы можете установить
moreutils
пакет, естьifdata
инструмент. Описание говорит:Вот пример:
источник