Відповіді:
Далі наведено фрагмент bash-скрипту, який я використовую для визначення MAC Ethernet або якщо цього не існує WiFi (для Pi Zero W).
Він не покладається на ifconfig
будь-який інший метод виявлення виділеного IP, а просто потрібен системі для виявлення мережевого обладнання.
Це працює для Jessie, Stretch або 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
В основному ви можете використовувати MAC=$(cat /sys/class/net/wlan0/address)
MAC вбудованого WiFi на Pi3 або Pi Zero W.
MAC=$(cat /sys/class/net/wlx*/address)
повинні працювати над WiFi-ключами на Stretch, але ви можете легко адаптувати вищезгадане для роботи як на Jessie, так і на Stretch для WiFi та Ethernet.
/sys/class/net
?
Введіть в термінал / консоль ifconfig wlan0
В кінці першого рядка повинна бути адреса апаратури aka MAC.
Ось зразок виводу (німецька мова):
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfig
, що це вдала альтернатива, щоб рухатися вперед.
Багато дистрибутиви заміна ifconfig
з , ip
так що я б перешкоджати використанню ifconfig
.
Щоб показати інтерфейс wlan0:
ip link show wlan0
або
cat /sys/class/net/wlan0/address
Посилання: https://www.linux.com/learn/replacing-ifconfig-ip
ifconfig
він буде доступний протягом багатьох років. Вилучивши його, ви врятуєте неміцні 800 кБ, зламавши безліч старих сценаріїв.
ip link show
мабуть, більш доцільно, ніж ip addr show
.
ifconfig
за замовчуванням, у Raspbian Stretch, здається, його є. Я вважаю ip
за краще ifconfig
, хоча вважаю, що Боб має рацію, кажучи, що link
це, мабуть, більше, ніж addr
у цьому контексті. Однак я вирішив прочитати це рішення /sys/class/net/wlan0/address
- не потрібно додаткового розбору. Крім того, я пишу це як cat /sys/class/net/wl*/address
у наївній спробі змусити його зекономити для майбутніх "передбачуваних імен мережевого інтерфейсу".
ifconfig wlan0
В кінці першого рядка повинна бути адреса апаратури ака MAC.