Risposte:
Quello che segue è un frammento di uno script bash che uso per determinare il MAC di Ethernet, o se questo non esiste del WiFi (per Pi Zero W).
Non si basa su ifconfigalcun altro metodo per rilevare l'IP allocato e necessita solo che il sistema rilevi l'hardware di rete.
Questo funziona per Jessie, Stretch o 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
Fondamentalmente potresti usare MAC=$(cat /sys/class/net/wlan0/address)per trovare il MAC del WiFi integrato su Pi3 o Pi Zero W.
MAC=$(cat /sys/class/net/wlx*/address) dovrebbe funzionare su dongle WiFi su Stretch, ma potresti facilmente adattare quanto sopra per lavorare su Jessie o Stretch per WiFi ed Ethernet.
/sys/class/net?
Inserisci nel terminale / console ifconfig wlan0Alla fine della prima riga dovrebbe essere l'indirizzo hardware aka MAC.
Ecco un esempio di output (impostazioni internazionali tedesche):
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfigsia una buona alternativa per il futuro.
Molte distribuzioni sta sostituendo ifconfigcon ipcosì vorrei scoraggiare l'uso di ifconfig.
Per mostrare l'interfaccia wlan0:
ip link show wlan0
o
cat /sys/class/net/wlan0/address
ifconfigsarà ancora disponibile per molti anni. Rimuoverlo si risparmia un misero 800 kB, rompendo molti vecchi script.
ip link showè probabilmente più appropriato di ip addr show.
ifconfigdi default, Raspbian Stretch sembra averlo. Io preferisco ipsopra ifconfig, anche se credo che Bob ha ragione nel dire che linkè probabilmente più appropriato addrin questo contesto. La soluzione per cui ho optato, tuttavia, è stata quella di leggerlo /sys/class/net/wlan0/address- non sono necessarie analisi aggiuntive. Inoltre, lo scrivo come cat /sys/class/net/wl*/addressin un ingenuo tentativo di salvarlo per i prossimi "nomi di interfaccia di rete prevedibili".
ifconfig wlan0Alla fine della prima riga dovrebbe essere l'indirizzo hardware aka MAC.