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.