Bagaimana saya bisa menemukan alamat MAC dari antarmuka Wi-Fi saya?

10

Saya ingin menentukan alamat MAC dari antarmuka Wi-Fi saya di Raspberry Pi ZW yang menjalankan Raspbian Lite.

Apakah ada perintah yang bisa saya jalankan untuk memberi tahu saya ini? Apakah ada perangkat di /procpohon yang akan mengungkapkannya?

Bex
sumber
1
Masukkan di terminal ifconfig wlan0Pada akhir baris pertama harus alamat perangkat keras alias MAC.
LotPings
2
@LotPings Anda bisa menjawabnya!
joan

Jawaban:

9

Berikut ini adalah fragmen skrip bash yang saya gunakan untuk menentukan MAC Ethernet, atau jika ini tidak ada WiFi (untuk Pi Zero W).

Itu tidak bergantung pada ifconfigatau metode lain untuk mendeteksi IP yang dialokasikan, dan hanya perlu sistem untuk mendeteksi perangkat keras jaringan.

Ini berfungsi untuk Jessie, Stretch atau 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

Pada dasarnya Anda dapat menggunakan MAC=$(cat /sys/class/net/wlan0/address)untuk menemukan MAC dari WiFi inbuilt pada Pi3 atau Pi Zero W.

MAC=$(cat /sys/class/net/wlx*/address) harus bekerja pada dongle WiFi di Stretch, tetapi Anda dapat dengan mudah mengadaptasi di atas untuk bekerja pada Jessie atau Stretch untuk WiFi dan Ethernet.

Milliways
sumber
Jawaban yang sangat bagus Terima kasih! Apakah Raspbian Stretch menggunakan nama antarmuka jaringan yang dapat diprediksi? Apakah mereka memengaruhi penamaan struktur di bawah /sys/class/net?
Bex
1
@Bex Itu tergantung; instalasi baru menggunakan nama antarmuka jaringan yang dapat diprediksi secara default, saya tidak tahu tentang peningkatan. Sangat mudah untuk memulihkan perilaku sebelumnya, lihat Bagaimana cara mengatur jaringan / WiFi / IP Statis untuk detail. Nama apa pun yang dipilih oleh proses penghitungan perangkat keras harus ditampilkan. Ada beberapa metode untuk memodifikasi proses ini.
Milliways
10

Masuk di terminal / konsol ifconfig wlan0Pada akhir baris pertama harus alamat perangkat keras alias MAC.

Di sini contoh keluaran (lokal Jerman):

pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse b8:27:eb:xx:xx:xx
...
Lotings
sumber
Saya telah membatalkan jawaban ini - tetapi saya pikir ifconfigini bukan alternatif yang baik untuk masa depan.
Bex
1
Setuju, untungnya ada dua alternatif.
Lotings
7

Banyak distro adalah mengganti ifconfigdengan ipjadi saya akan mencegah penggunaan ifconfig.

Untuk menampilkan antarmuka wlan0:

ip link show wlan0

atau

cat /sys/class/net/wlan0/address

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

MatsK
sumber
Saya cukup yakin ifconfigmasih akan tersedia selama bertahun-tahun. Menghapusnya akan menghemat 800 kB, mematahkan banyak skrip lama.
Dmitry Grigoryev
Masalahnya, orang itu pasti menginginkan gaji.
Dmitry Grigoryev
1
Sedih untuk terus menggunakan perintah usang dalam implementasi baru. Saya telah melihat ini dalam situasi yang berhubungan dengan pekerjaan, dan itu seperti mendorong masalah di depan Anda, dan pada titik waktu itu akan menjadi besar! Mulailah berurusan dengan itu sebagai gantinya!
MatsK
2
Dalam hal ini, ip link showmungkin lebih tepat daripada ip addr show.
Bob
1
Dalam sistem desktop saya, saya menjalankan Debian Stretch, yang tampaknya tidak ifconfiglagi secara default, Raspbian Stretch tampaknya memilikinya. Saya lebih suka ipdaripada ifconfig, meskipun saya pikir Bob benar dalam mengatakan bahwa linkmungkin lebih tepat daripada addrdalam konteks ini. Solusi yang saya lakukan adalah membacanya /sys/class/net/wlan0/address- tidak perlu penguraian tambahan. Selain itu, saya menulisnya sebagai cat /sys/class/net/wl*/addressupaya naif untuk membuatnya menghemat untuk "nama antarmuka jaringan yang dapat diprediksi" yang akan datang.
Bex