The following is a fragment of a bash script I use to determine the MAC of Ethernet, or if this does not exist of WiFi (for Pi Zero W). It does not rely on `ifconfig` or any other method of detecting allocated IP, and just needs the system to detect the networking hardware. This works for Jessie, Stretch or 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 Basically you could use `MAC=$(cat /sys/class/net/wlan0/address)` to find the MAC of inbuilt WiFi on Pi3 or Pi Zero W. `MAC=$(cat /sys/class/net/wlx*/address)` should work on WiFi dongles on Stretch, but you could easily adapt the above to work on both Jessie or Stretch for WiFi and Ethernet.