Ich möchte die MAC-Adresse meiner Wi-Fi-Schnittstelle auf einem Raspberry Pi ZW ermitteln, auf dem Raspbian Lite ausgeführt wird.
Gibt es einen Befehl, den ich ausführen kann, um mir dies zu sagen? Gibt es ein Gerät im /proc
Baum, das es offenbart?
ifconfig wlan0
Am Ende der ersten Zeile sollte die Hardwareadresse alias MAC stehen.Antworten:
Das Folgende ist ein Fragment eines Bash-Skripts, das ich verwende, um den MAC von Ethernet zu bestimmen, oder wenn dies von WiFi nicht existiert (für Pi Zero W).
Es basiert nicht auf
ifconfig
einer anderen Methode zum Erkennen der zugewiesenen IP-Adresse und benötigt lediglich das System, um die Netzwerkhardware zu erkennen.Dies funktioniert für Jessie, Stretch oder Buster
Grundsätzlich können Sie
MAC=$(cat /sys/class/net/wlan0/address)
den MAC von integriertem WLAN auf Pi3 oder Pi Zero W finden.MAC=$(cat /sys/class/net/wlx*/address)
sollte auf WiFi-Dongles auf Stretch funktionieren, aber Sie können die oben genannten problemlos anpassen, um sowohl auf Jessie als auch auf Stretch für WiFi und Ethernet zu arbeiten.quelle
/sys/class/net
?In Terminal / Konsole eingeben
ifconfig wlan0
Am Ende der ersten Zeile sollte die Hardwareadresse oder MAC stehen.Hier eine Beispielausgabe (deutsches Gebietsschema):
quelle
ifconfig
eine gute Alternative für die Zukunft ist.Viele Distributionen ersetzt
ifconfig
mit ,ip
damit ich die Verwendung entmutigen würdeifconfig
.So zeigen Sie die wlan0-Schnittstelle an:
oder
Ref: https://www.linux.com/learn/replacing-ifconfig-ip
quelle
ifconfig
es noch viele Jahre verfügbar sein wird. Durch das Entfernen werden nur knapp 800 KB eingespart, wodurch viele alte Skripte beschädigt werden.ip link show
ist wahrscheinlich besser geeignet alsip addr show
.ifconfig
standardmäßig nicht mehr zu haben scheint, Raspbian Stretch scheint es zu haben. Ich ziehe esip
vorifconfig
, obwohl ich denke, dass Bob zu Recht sagt, dass dieslink
wahrscheinlich angemessener ist alsaddr
in diesem Zusammenhang. Die Lösung, für die ich mich entschieden habe, bestand darin, sie zu lesen/sys/class/net/wlan0/address
- es ist keine zusätzliche Analyse erforderlich. Außerdem schreibe ich es wiecat /sys/class/net/wl*/address
in einem naiven Versuch, es für die kommenden "vorhersehbaren Netzwerkschnittstellennamen" zu speichern.