如何找到Wi-Fi接口的MAC地址?


10

我想确定运行Raspbian Lite的Raspberry Pi ZW上Wi-Fi接口的MAC地址。

有没有可以用来告诉我的命令?/proc树中是否存在可以公开该信息的设备?


1
输入终端ifconfig wlan0在第一行的末尾应该是硬件地址,也就是MAC。
LotPings

2
@LotPings您可以做出一个答案!
2017年

Answers:


9

以下是bash脚本的片段,我用它来确定以太网的MAC,或者如果WiFi不存在(对于Pi Zero W),则该bash脚本用于确定以太网的MAC。

它不依赖于ifconfig检测分配的IP或任何其他方法,仅需要系统检测网络硬件。

这适用于杰西,舒展或克星

# Find MAC of eth0, or if not exist wlan0
if [ -e /sys/class/net/eth0 ]; then
    MAC=$(cat /sys/class/net/eth0/address)
elif [ -e /sys/class/net/enx* ]; then
    MAC=$(cat /sys/class/net/enx*/address)
else
    MAC=$(cat /sys/class/net/wlan0/address)
fi

基本上,您可以用来MAC=$(cat /sys/class/net/wlan0/address)在Pi3或Pi Zero W上找到内置WiFi的MAC。

MAC=$(cat /sys/class/net/wlx*/address) 应该可以在Stretch上的WiFi加密狗上使用,但是您可以轻松地将以上内容改编成既可以在Jessie上使用,也可以在Stretch for WiFi和以太网上使用。


很好的答案。谢谢!Raspbian Stretch是否使用可预测的网络接口名称?它们会影响下结构的命名/sys/class/net吗?
Bex

1
@Bex取决于;全新安装默认情况下使用可预测的网络接口名称,我不知道升级。恢复以前的行为很简单,有关详细信息,请参阅如何设置网络/ WiFi /静态IP。应该显示由硬件枚举过程选择的任何名称。有几种修改此过程的方法。
Milliways

10

在终端/控制台中输入ifconfig wlan0第一行的末尾应为硬件地址,即MAC。

以下是示例输出(德语语言环境):

pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse b8:27:eb:xx:xx:xx
...

我赞成这个答案-但我认为未来ifconfig不是一个很好的选择。
Bex

1
同意,幸运的是,有两种选择。
LotPings

7

许多发行版都被取代ifconfigip因此我不鼓励使用ifconfig

显示wlan0界面:

ip link show wlan0

要么

cat /sys/class/net/wlan0/address

参考:https : //www.linux.com/learn/replacing-ifconfig-ip


我很确定ifconfig仍然可以使用很多年。删除它仅能节省800 kB,从而破坏了许多旧脚本。
德米特里·格里戈里耶夫

问题是那个人想要薪水。
德米特里·格里戈里耶夫

1
在新的实现中继续使用不推荐使用的命令是可悲的。我已经在与工作相关的情况下看到了这一点,就像将问题推到您面前一样,在某个时间点它会变得越来越大!开始处理它!
MatsK '17

2
在这种情况下,ip link show可能比更为合适ip addr show
鲍勃”

1
在我的桌面系统上,我运行Debian Stretch,ifconfig默认情况下似乎不再有,Raspbian Stretch似乎拥有它。我喜欢ipifconfig,虽然我认为鲍勃是说得很对,link可能比更合适addr在这种情况下。不过,我要做的解决方案是从中读取它/sys/class/net/wlan0/address-无需其他解析。另外,我写它只是cat /sys/class/net/wl*/address为了幼稚地尝试将它保存为即将到来的“可预测的网络接口名称”。
Bex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.