![获取 eth0 的 MAC 的最佳方法是什么?](https://linux22.com/image/560536/%E8%8E%B7%E5%8F%96%20eth0%20%E7%9A%84%20MAC%20%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
在 Linux 中有没有更有效的方法来检索 NIC 的 MAC 地址?
这有效:
ip link show dev eth0 | awk ' /link\/ether/ { print $2 }'
但可以通过以下方式找到它:
cat /sys/net/something
答案1
它位于/sys/class/net/eth0/address
(或者更准确地说/sys/devices/pciXXXX:XX/XXXX/net/eth0/address
,XXX 是您的 PCI 总线 ID,但这在不同系统之间有所不同)。
(顺便说一句,我在find /sys -name eth0
查看已识别目录中的文件时发现了这一点。)
答案2
也可以通过以下方式获取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
答案3
如果你可以安装moreutils
程序包,则有一个ifdata
工具。说明如下:
ifdata:获取网络接口信息而不解析 ifconfig 输出
以下是一个例子:
me@box:~$ ifdata -ph eth0
00:21:86:61:35:44