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 ifconfig
hoặ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
...
ifconfig
là một lựa chọn tốt trong tương lai.
Nhiều bản phân phối được thay thế ifconfig
bằng ip
vì 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
ifconfig
sẽ 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 show
có lẽ là thích hợp hơn ip addr show
.
ifconfig
mặc định nữa, Raspbian Stretch dường như có nó. Tôi thích ip
hơn ifconfig
, mặc dù tôi nghĩ Bob nói đúng link
có lẽ phù hợp hơn addr
trong 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*/address
mộ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.