Câu trả lời:
Sau đây là một đoạn của tập lệnh bash tôi sử dụng để xác định MAC của Ethernet hoặc nếu điều này không tồn tại của WiFi (đối với Pi Zero W).
Nó không dựa vào ifconfighoặc bất kỳ phương pháp nào khác để phát hiện IP được phân bổ và chỉ cần hệ thống phát hiện phần cứng mạng.
Điều này làm việc cho Jessie, Stretch hoặc 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
Về cơ bản, bạn có thể sử dụng MAC=$(cat /sys/class/net/wlan0/address)để tìm MAC của WiFi sẵn có trên Pi3 hoặc Pi Zero W.
MAC=$(cat /sys/class/net/wlx*/address) nên hoạt động trên các khóa WiFi trên Stretch, nhưng bạn có thể dễ dàng điều chỉnh các cách trên để hoạt động trên cả Jessie hoặc Stretch cho WiFi và Ethernet.
/sys/class/net?
Nhập vào terminal / console ifconfig wlan0Ở cuối dòng đầu tiên phải là địa chỉ phần cứng hay còn gọi là MAC.
Đây là một đầu ra mẫu (miền địa phương Đức):
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfiglà một lựa chọn tốt trong tương lai.
Nhiều bản phân phối được thay thế ifconfigbằng ipvì vậy tôi sẽ không khuyến khích việc sử dụng ifconfig.
Để hiển thị giao diện wlan0:
ip link show wlan0
hoặc là
cat /sys/class/net/wlan0/address
Tham chiếu: https://www.linux.com/learn/replaces-ifconfig-ip
ifconfigsẽ vẫn có sẵn trong nhiều năm. Loại bỏ nó sẽ tiết kiệm được 800 kB, phá vỡ rất nhiều tập lệnh cũ.
ip link showcó lẽ là thích hợp hơn ip addr show.
ifconfigmặc định nữa, Raspbian Stretch dường như có nó. Tôi thích iphơn ifconfig, mặc dù tôi nghĩ Bob nói đúng linkcó lẽ phù hợp hơn addrtrong bối cảnh này. Tuy nhiên, giải pháp tôi đã thực hiện là đọc nó từ /sys/class/net/wlan0/address- không cần phân tích cú pháp bổ sung. Ngoài ra, tôi viết nó như là cat /sys/class/net/wl*/addressmột nỗ lực ngây thơ để làm cho nó tiết kiệm cho "tên giao diện mạng dự đoán" sắp tới.
ifconfig wlan0Ở cuối dòng đầu tiên phải là địa chỉ phần cứng hay còn gọi là MAC.