Respostas:
A seguir, um fragmento de um script bash que eu uso para determinar o MAC da Ethernet, ou se isso não existe de WiFi (para Pi Zero W).
Ele não depende de ifconfignenhum outro método de detecção de IP alocado e precisa apenas do sistema para detectar o hardware da rede.
Isso funciona para Jessie, Stretch ou Buster
# 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
Basicamente, você pode usar MAC=$(cat /sys/class/net/wlan0/address)para encontrar o MAC do WiFi embutido no Pi3 ou Pi Zero W.
MAC=$(cat /sys/class/net/wlx*/address) deve funcionar em dongles WiFi no Stretch, mas você pode facilmente adaptar o acima para trabalhar com Jessie ou Stretch for WiFi e Ethernet.
/sys/class/net?
Entre no terminal / console ifconfig wlan0No final da primeira linha deve estar o endereço do hardware, também conhecido como MAC.
Aqui está um exemplo de saída (localidade alemã):
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfigseja uma boa alternativa daqui para frente.
Muitas distribuições estão sendo substituídas ifconfigpor, ipentão eu desencorajaria o uso de ifconfig.
Para mostrar a interface wlan0:
ip link show wlan0
ou
cat /sys/class/net/wlan0/address
ifconfigque ainda estará disponível por muitos anos. Removê-lo economizará míseros 800 kB, quebrando muitos scripts antigos.
ip link showprovavelmente é mais apropriado que ip addr show.
ifconfigpor padrão, o Raspbian Stretch parece ter. Eu prefiro ipmais ifconfig, embora eu acho que Bob está certo em dizer que linké provavelmente mais apropriado do que addrneste contexto. A solução que eu procurei, no entanto, foi lê-lo /sys/class/net/wlan0/address- sem necessidade de análise adicional. Além disso, eu o escrevo como cat /sys/class/net/wl*/addressuma tentativa ingênua de salvar os próximos "nomes de interface de rede previsíveis".
ifconfig wlan0No final da primeira linha deve estar o endereço do hardware, também conhecido como MAC.