esp8266: mac() function belongs to network module per the latest API.
diff --git a/esp8266/modnetwork.c b/esp8266/modnetwork.c
index 4aa252c..b47ec8a 100644
--- a/esp8266/modnetwork.c
+++ b/esp8266/modnetwork.c
@@ -116,6 +116,26 @@
 
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_isconnected_obj, esp_isconnected);
 
+STATIC mp_obj_t esp_mac(mp_uint_t n_args, const mp_obj_t *args) {
+    uint8_t mac[6];
+    if (n_args == 0) {
+        wifi_get_macaddr(STATION_IF, mac);
+        return mp_obj_new_bytes(mac, sizeof(mac));
+    } else {
+        mp_buffer_info_t bufinfo;
+        mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_READ);
+
+        if (bufinfo.len != 6) {
+            nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError,
+                "invalid buffer length"));
+        }
+
+        wifi_set_macaddr(STATION_IF, bufinfo.buf);
+        return mp_const_none;
+    }
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(esp_mac_obj, 0, 1, esp_mac);
+
 STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
     { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) },
     // MicroPython "network" module interface requires it to contains classes
@@ -128,6 +148,7 @@
     { MP_OBJ_NEW_QSTR(MP_QSTR_status), (mp_obj_t)&esp_status_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_isconnected), (mp_obj_t)&esp_isconnected_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_mac), (mp_obj_t)&esp_mac_obj },
 
 #if MODNETWORK_INCLUDE_CONSTANTS
     { MP_OBJ_NEW_QSTR(MP_QSTR_STAT_IDLE),