Як я можу знайти MAC-адресу свого інтерфейсу Wi-Fi?


10

Я хочу визначити MAC-адресу мого інтерфейсу Wi-Fi на Raspberry Pi ZW під керуванням Raspbian Lite.

Чи є команда, яку я можу бігти, щоб сказати мені це? Чи є в /procдереві пристрій, який розкриє його?


1
Введіть у терміналі ifconfig wlan0В кінці першого рядка повинна бути адреса апаратури ака MAC.
LotPings

2
@LotPings Ви могли б відповісти на це!
Джоан

Відповіді:


9

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


Дуже гарна відповідь. Дякую! Чи використовує Raspbian Stretch передбачувані імена мережевого інтерфейсу? Чи впливають вони на найменування структури під /sys/class/net?
Бекс

1
@Bex Це залежить; нова установка використовує передбачувані імена мережевого інтерфейсу за замовчуванням, я не знаю про оновлення. Відновити колишню поведінку досить просто, див. Як встановити мережу / WiFi / Статичний IP для деталей. Незалежно від того, яке ім'я обрано методом апаратного перерахування, слід вказати. Існує кілька методів модифікації цього процесу.
Міллівейс

10

Введіть в термінал / консоль ifconfig wlan0В кінці першого рядка повинна бути адреса апаратури aka MAC.

Ось зразок виводу (німецька мова):

pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse b8:27:eb:xx:xx:xx
...

Я відповів на цю відповідь - але я не думаю ifconfig, що це вдала альтернатива, щоб рухатися вперед.
Бекс

1
Домовились, на щастя, є дві альтернативи.
LotPings

7

Багато дистрибутиви заміна ifconfigз , ipтак що я б перешкоджати використанню ifconfig.

Щоб показати інтерфейс wlan0:

ip link show wlan0

або

cat /sys/class/net/wlan0/address

Посилання: https://www.linux.com/learn/replacing-ifconfig-ip


Я впевнений, що ifconfigвін буде доступний протягом багатьох років. Вилучивши його, ви врятуєте неміцні 800 кБ, зламавши безліч старих сценаріїв.
Дмитро Григор’єв

Проблема в тому, що ця людина хотіла б зарплату.
Дмитро Григор’єв

1
Продовжувати використовувати застарілу команду в нових реалізаціях - це сумно. Я бачив це в ситуаціях, пов'язаних з роботою, і це як виштовхування проблеми перед вами, і в певний момент воно стане великим! Почніть займатися цим замість цього!
MatsK

2
У цьому випадку, ip link showмабуть, більш доцільно, ніж ip addr show.
Боб

1
У моїй настільній системі я запускаю Debian Stretch, який, схоже, не має ifconfigза замовчуванням, у Raspbian Stretch, здається, його є. Я вважаю ipза краще ifconfig, хоча вважаю, що Боб має рацію, кажучи, що linkце, мабуть, більше, ніж addrу цьому контексті. Однак я вирішив прочитати це рішення /sys/class/net/wlan0/address- не потрібно додаткового розбору. Крім того, я пишу це як cat /sys/class/net/wl*/addressу наївній спробі змусити його зекономити для майбутніх "передбачуваних імен мережевого інтерфейсу".
Бекс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.