Відповіді:
Далі наведено фрагмент 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.