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 ifconfig
alcun 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 wlan0
Alla 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
...
ifconfig
sia una buona alternativa per il futuro.
Molte distribuzioni sta sostituendo ifconfig
con ip
così vorrei scoraggiare l'uso di ifconfig
.
Per mostrare l'interfaccia wlan0:
ip link show wlan0
o
cat /sys/class/net/wlan0/address
ifconfig
sarà 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
.
ifconfig
di default, Raspbian Stretch sembra averlo. Io preferisco ip
sopra ifconfig
, anche se credo che Bob ha ragione nel dire che link
è probabilmente più appropriato addr
in 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*/address
in un ingenuo tentativo di salvarlo per i prossimi "nomi di interfaccia di rete prevedibili".
ifconfig wlan0
Alla fine della prima riga dovrebbe essere l'indirizzo hardware aka MAC.