如何在Bash脚本中获取有源以太网连接的MAC地址?

时间:2010-04-21 22:47:56

标签: bash

简单问题:

如何在bash脚本中获取活动以太网连接的MAC地址?

我目前有:

set - `/sbin/ifconfig eth0 | head -1`
MAC=$5

哪个输出eth0的MAC地址,但是如果它的eth1是活动的,我想要那个。

我可以事先执行ifconfig | grep inet但是这不会告诉我哪个界面是活动的,只是一个是活动的。我需要抓住它上面的一行告诉我哪一个是活动连接。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

找到答案:

set - `ifconfig | grep -B 1 inet | head -1`
MAC=$5

我grep了inet字符串并返回了之前的行。然后用头抓住第一行。

答案 1 :(得分:1)

你可以做这样的事情

ifconfig | awk '/eth/ { print $5 }'

也是一个选项......取决于用户可能需要在xargs中指定/ sbin / ifconfig

route | awk '/default/ { print $NF }' | xargs -I {} ifconfig {} | awk '/HWaddr/ { print $5 }'