답변:
다음은 이더넷의 MAC을 확인하거나 Wi-Fi에 존재하지 않는 경우 (Pi Zero W의 경우) 사용하는 bash 스크립트 조각입니다.
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)
Pi3 또는 Pi Zero W에서 내장 WiFi의 MAC을 찾는 데 사용할 수 있습니다 .
MAC=$(cat /sys/class/net/wlx*/address)
스트레치의 WiFi 동글에서 작동해야하지만 WiFi 및 이더넷을 위해 Jessie 또는 Stretch에서 모두 작동하도록 위의 내용을 쉽게 조정할 수 있습니다.
/sys/class/net
니까?
많은 배포판이로 대체 ifconfig
되어 ip
의 사용을 권장하지 않습니다 ifconfig
.
wlan0 인터페이스를 표시하려면 다음을 수행하십시오.
ip link show wlan0
또는
cat /sys/class/net/wlan0/address
ifconfig
몇 년 동안 계속 사용할 수 있다고 확신 합니다. 제거하면 800 kB가 절약되어 많은 오래된 스크립트가 손상됩니다.
ip link show
아마도보다 적합 할 것 ip addr show
입니다.
ifconfig
기본적으로 더 이상 필요하지 않은 것 같습니다 . Bob 이이 문맥 보다 아마도 더 적합하다고 말하는 것이 옳다고 생각하지만 나는 ip
이상을 선호합니다 . 그러나 내가 간 해결책은 추가 구문 분석이 필요하지 않은 상태에서 읽는 것입니다 . 또한 나는 "예상 가능한 네트워크 인터페이스 이름"을 저장하기 위해 순진한 시도로 작성합니다. ifconfig
link
addr
/sys/class/net/wlan0/address
cat /sys/class/net/wl*/address
ifconfig wlan0
첫 번째 줄 끝에 하드웨어 주소 (MAC)가 있어야합니다.