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 ifconfig
nenhum 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 wlan0
No 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
...
ifconfig
seja uma boa alternativa daqui para frente.
Muitas distribuições estão sendo substituídas ifconfig
por, ip
então eu desencorajaria o uso de ifconfig
.
Para mostrar a interface wlan0:
ip link show wlan0
ou
cat /sys/class/net/wlan0/address
ifconfig
que ainda estará disponível por muitos anos. Removê-lo economizará míseros 800 kB, quebrando muitos scripts antigos.
ip link show
provavelmente é mais apropriado que ip addr show
.
ifconfig
por padrão, o Raspbian Stretch parece ter. Eu prefiro ip
mais ifconfig
, embora eu acho que Bob está certo em dizer que link
é provavelmente mais apropriado do que addr
neste 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*/address
uma tentativa ingênua de salvar os próximos "nomes de interface de rede previsíveis".
ifconfig wlan0
No final da primeira linha deve estar o endereço do hardware, também conhecido como MAC.