获取活动界面的mac地址

时间:2017-04-20 07:07:44

标签: linux networking

我试图获取接口的mac_address,直到现在我能够得到这个

ifconfig | grep HWaddr

eth0      Link encap:Ethernet  HWaddr 98:BE:94:24:41:62
eth1      Link encap:Ethernet  HWaddr 98:BE:94:24:41:63
eth2      Link encap:Ethernet  HWaddr 98:BE:94:24:41:64
eth3      Link encap:Ethernet  HWaddr 98:BE:94:24:41:65
usb0      Link encap:Ethernet  HWaddr 9A:BE:94:24:41:61

是否有任何一行命令来获取接口链接的mac_address?

3 个答案:

答案 0 :(得分:1)

cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/address

ip route show default | awk '/default/ {print $5}'打印您的默认接口名称。然后你从/sys/class/net/IFACE_NAME/address

获得你的mac

答案 1 :(得分:0)

您可以尝试使用此方法获取界面的mac地址。如果检查接口名称,MAC地址是没有前导空格的行上的第一个和最后一个字段。

ifconfig -a |
awk '/^[a-z]/ { iface=$1; mac=$NF; next }
    /inet addr:/ { print iface, mac }'

或非常简单,你可以使用这个

cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/address

这实际上返回:bc:f8:6b:bd:55:00(eth0的示例macaddress)

答案 2 :(得分:0)

您可以尝试以下解决方案:

  • 对于具有正则表达式MAC的Up Up ifconfig的接口 模式:

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

  • 像CentOS这样的操作系统不提供ifconfig,因此您可以像这样使用ip

ip add | grep link/ether | awk '{print $2}'

  • 对于所有界面,您可以简单地:cat /sys/class/net/*/address