Como posso encontrar o endereço MAC da minha interface Wi-Fi?

10

Quero determinar o endereço MAC da minha interface Wi-Fi em um Raspberry Pi ZW executando o Raspbian Lite.

Existe um comando que eu possa executar para me dizer isso? Existe um dispositivo na /procárvore que o divulgará?

Bex
fonte
11
Entre no terminal ifconfig wlan0No final da primeira linha deve estar o endereço do hardware, também conhecido como MAC.
LotPings
2
@ LotPings Você pode fazer disso uma resposta!
Joan

Respostas:

9

A seguir, um fragmento de um script bash que eu uso para determinar o MAC da Ethernet, ou se isso não existe de WiFi (para Pi Zero W).

Ele não depende de ifconfignenhum outro método de detecção de IP alocado e precisa apenas do sistema para detectar o hardware da rede.

Isso funciona para Jessie, Stretch ou 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

Basicamente, você pode usar MAC=$(cat /sys/class/net/wlan0/address)para encontrar o MAC do WiFi embutido no Pi3 ou Pi Zero W.

MAC=$(cat /sys/class/net/wlx*/address) deve funcionar em dongles WiFi no Stretch, mas você pode facilmente adaptar o acima para trabalhar com Jessie ou Stretch for WiFi e Ethernet.

Milliways
fonte
Resposta muito boa. Obrigado! O Raspbian Stretch usa nomes de interface de rede previsíveis? Eles afetam o nome da estrutura /sys/class/net?
Bex
11
@Bex Depende; uma nova instalação usa nomes de interface de rede previsíveis por padrão, não sei sobre atualizações. É simples restaurar o comportamento anterior, consulte Como configurar a rede / WiFi / IP estático para obter detalhes. Qualquer nome selecionado pelo processo de enumeração de hardware deve ser mostrado. Existem vários métodos para modificar esse processo.
Milliways 30/08/17
10

Entre no terminal / console ifconfig wlan0No final da primeira linha deve estar o endereço do hardware, também conhecido como MAC.

Aqui está um exemplo de saída (localidade alemã):

pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse b8:27:eb:xx:xx:xx
...
LotPings
fonte
Votou esta resposta - mas não acho que ifconfigseja uma boa alternativa daqui para frente.
Bex
11
Felizmente, existem duas alternativas.
LotPings
7

Muitas distribuições estão sendo substituídas ifconfigpor, ipentão eu desencorajaria o uso de ifconfig.

Para mostrar a interface wlan0:

ip link show wlan0

ou

cat /sys/class/net/wlan0/address

Ref: https://www.linux.com/learn/replacing-ifconfig-ip

MatsK
fonte
Tenho certeza de ifconfigque ainda estará disponível por muitos anos. Removê-lo economizará míseros 800 kB, quebrando muitos scripts antigos.
Dmitry Grigoryev
O problema é que essa pessoa iria querer um salário.
Dmitry Grigoryev
11
É triste continuar usando um comando obsoleto em novas implementações. Eu já vi isso em situações relacionadas ao trabalho, e é como empurrar o problema à sua frente, e em algum momento ele ficará grande! Comece a lidar com isso!
MatsK
2
Nesse caso, ip link showprovavelmente é mais apropriado que ip addr show.
Bob
11
No meu sistema desktop, eu executo o Debian Stretch, que parece não ter mais ifconfigpor padrão, o Raspbian Stretch parece ter. Eu prefiro ipmais ifconfig, embora eu acho que Bob está certo em dizer que linké provavelmente mais apropriado do que addrneste contexto. A solução que eu procurei, no entanto, foi lê-lo /sys/class/net/wlan0/address- sem necessidade de análise adicional. Além disso, eu o escrevo como cat /sys/class/net/wl*/addressuma tentativa ingênua de salvar os próximos "nomes de interface de rede previsíveis".
Bex