Die beste Linux-spezifische Lösung ist die Verwendung von sysfs:
$ IFACE=eth0
$ read MAC </sys/class/net/$IFACE/address
$ echo $IFACE $MAC
eth0 00:ab:cd:12:34:56
Diese Methode ist im Vergleich zu den anderen extrem sauber und erzeugt seit read
keine zusätzlichen Prozesse ist ein eingebauter Befehl für POSIX-Shells, einschließlich Nicht-BASH-Shells. Wenn Sie jedoch eine Portierbarkeit auf OS X benötigen, müssen Sie ifconfig
verwenden und sed
Methoden, da OS X keine virtuelle Dateisystemschnittstelle wie sysfs hat.
Sie können wie folgt vorgehen
ifconfig <Interface ex:eth0,eth1> | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
Sie können MAC auch wie folgt für alle Schnittstellen abrufen
cat /sys/class/net/*/address
Für bestimmte Schnittstellen wie für eth0
cat /sys/class/net/eth0/address