ฉันต้องการตรวจสอบ MAC-address ของอินเตอร์เฟส Wi-Fi ของฉันบน Raspberry Pi ZW ที่รัน Raspbian Lite
มีคำสั่งที่ฉันสามารถเรียกใช้เพื่อบอกฉันนี้หรือไม่? มีอุปกรณ์ใน/procต้นไม้ที่จะเปิดเผยหรือไม่
ฉันต้องการตรวจสอบ MAC-address ของอินเตอร์เฟส Wi-Fi ของฉันบน Raspberry Pi ZW ที่รัน Raspbian Lite
มีคำสั่งที่ฉันสามารถเรียกใช้เพื่อบอกฉันนี้หรือไม่? มีอุปกรณ์ใน/procต้นไม้ที่จะเปิดเผยหรือไม่
คำตอบ:
ต่อไปนี้เป็นส่วนของสคริปต์ทุบตีที่ฉันใช้เพื่อตรวจสอบ MAC ของอีเธอร์เน็ตหรือหากไม่มี 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 ของ inbuilt WiFi บน Pi3 หรือ Pi Zero W.
MAC=$(cat /sys/class/net/wlx*/address) ควรทำงานกับ WiFi dongles บน Stretch แต่คุณสามารถปรับตัวด้านบนเพื่อทำงานกับทั้ง Jessie หรือ Stretch สำหรับ WiFi และ Ethernet
/sys/class/netหรือไม่?
ใส่ใน terminal / console ifconfig wlan0ในตอนท้ายของบรรทัดแรกควรเป็นที่อยู่ฮาร์ดแวร์ aka MAC
นี่คือตัวอย่างผลลัพธ์ (ภาษาเยอรมัน):
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfigจะเป็นทางเลือกที่ดีในอนาคต
distros หลายคนจะถูกแทนที่ifconfigด้วยดังนั้นฉันจะกีดกันการใช้งานของipifconfig
ในการแสดงอินเตอร์เฟส wlan0:
ip link show wlan0
หรือ
cat /sys/class/net/wlan0/address
ifconfigจะยังคงมีอยู่เป็นเวลาหลายปี การลบมันจะช่วยประหยัด 800 กิโลไบต์ซึ่งทำลายสคริปต์เก่า ๆ ได้มาก
ip link show ip addr show
ifconfigค่าเริ่มต้นอีกต่อไป Raspbian Stretch ดูเหมือนจะมีอยู่ ฉันชอบipมากกว่าifconfigแม้ว่าฉันคิดว่าบ๊อบพูดlinkถูกว่าเหมาะสมกว่าaddrในบริบทนี้ วิธีแก้ปัญหาที่ฉันทำไปคือการอ่านจาก/sys/class/net/wlan0/address- ไม่จำเป็นต้องแยกวิเคราะห์เพิ่มเติม นอกจากนี้ฉันเขียนมันcat /sys/class/net/wl*/addressในความพยายามที่ไร้เดียงสาเพื่อให้ประหยัดสำหรับ "ชื่อเครือข่ายอินเทอร์เฟซที่คาดเดาได้" ที่กำลังจะมาถึง
ifconfig wlan0ในตอนท้ายของบรรทัดแรกควรเป็นที่อยู่ฮาร์ดแวร์ aka MAC