ESP8266: Get MAC address

The objective of this short post is to explain how to get the MAC address of the ESP8266.


The objective of this short post is to explain how to get the MAC address of the ESP8266.

Explaining in detail what is a MAC address is outside of the scope of this post. But, just as a quick explanation, the MAC address is a unique value associated with a network adapter [1]. So, MAC addresses are hardware addresses that uniquely identify a network adapter [1].

Taking in consideration the OSI model, MAC addressing works at a layer (layer 2) lower than IP addressing (layer 3) [1].

In terms of format, MAC addresses are 48-bit in length [2] and typically represented in hexadecimal format, with each two hexadecimal digits separated by “:”.

The first 24 bits of the MAC are the identifier number of the manufacturer and the second 24 bits are a serial number assigned by the manufacturer [2].

You can read more about MAC addresses here.

The tests were performed using a NodeMCU board, a very cheap and easy to use ESP8266 board. The board can be bought at eBay here.

The code

The code for this tutorial is very simple, since we already have a function to get the MAC of the ESP8266.

Since we only want to print the MAC, we will do all the coding on the setup function and leave the main loop empty.

First, we include the ESP8266WiFi library, which we typically use to access all the functionality needed for the ESP8266 to connect to a WiFi network. Then, in our setup function, we open the serial port, so we can print the output of our program.

To get the MAC dress of the ESP8266, we simply call the macAdress method on the WiFi global variable, which will return the MAC address in the hexadecimal format mentioned early.

You can check the full working code bellow, which also includes the empty loop function.

#include <ESP8266WiFi.h>

void setup(){


   Serial.print("MAC: ");


void loop(){}

Testing the code

To test the code, just upload it to the ESP8266 and open the Arduino IDE console. You should get something similar to figure 1.

ESP8266 Get MAC

Figure 1 – Output of the function to get the MAC of the ESP8266.

Just to confirm what was explained in the introduction section, we can check if the first 24 bits of the MAC correspond to the manufacturer of the ESP8266, which is Espressif. You can check yours here. It should indicate Espressif, as shown i figure 2.

ESP8266 MAC vendor lookup

Figure 2 – Result of vendor lookup from the ESP8266 MAC.




Technical details

ESP8266 libraries: v2.3.0

This entry was posted in ESP8266 and tagged , , , , , . Bookmark the permalink.

4 Responses to ESP8266: Get MAC address

  1. Parth says:

    In ESP32 can anybody help me of scanning BLE devices using Arduino IDE 1.8.3

    Liked by 1 person

  2. randy says:

    The major flaw with this tutorial is 8t assumes the reader knows precisely how and where the ESP8266 should be connected. The reader is left to make guesses and wild azsumptions leav8ng this tutorial of little value to those new to the world of arduino


    • antepher says:


      Sorry if you found the tutorial too hard to follow.

      I always try to make content easy to follow for beginners and keep it interesting for more advanced users, but I hope you can understand that I can’t explain every detail of the Arduino language in each post I do.

      So, I assume that the readers who are following these tutorials have some basic knowledge on programming and on the Arduino language, since trying to work with more complicated devices such as the ESP32 and WiFi may be difficult without knowing the basics.

      But this tutorial is just calling a function and printing some stuff to the serial port, so you just need to power on your ESP8266, compile and run the code.

      Can you explain where you are having problems, so I can try to help?

      Best regards,
      Nuno Santos


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s