• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

MAC адрес

LDL

New member
Подскажите- у ESPэшки MAC адрес уникальный или нет?
Нужно ли присваивать им МАС адреса при настройке.
Иногда устройства меняются местами. Не пойму в чём проблема.
Под одним и тем же IP разные устройства после перезагрузки.
 

VicSpectator

New member
Судя по SDK, мак-адрес настраивается при запуске самой esp. Но пусть ответят специалисты :)
 

LDL

New member
Espressif обещает, что уникальный. Мне пока одинаковые не встречались.
Я прошивал 10 штук и показалось что мелькнули одинаковые МАСи. Ну показалось подумал. И ладно.
Но вот поимел последствия этого в виде устройств меняющиеся местами.
Роутер выделяет 10 IP адресов. Время замены адресов в роутере=0 (то есть никогда).
Включили девайсы, зарегистрировали в системе под IP адресами. Через пару дней пропало питание. Включили. Все адреса на месте, но поменялись местами. Я так понимаю что роутер запоминает IP ассоциируя его с МАС. А если один включился быстрее других то он занимает МАС из пула. А роутер ставит ему в соответствии адрес. Вот и получаем попрыгунчика. Я по другому не могу объяснить эту ситуацию.
 

rst

Member
Я по другому не могу объяснить эту ситуацию.
По-другому это объясняется просто: Вы не знаете как работает DHCP. Если нужно зафиксировать IP для данного MAC - прописывается статическая аренда вне пула динамически выделяемых IP-адресов.
 

pvvx

Активный участник сообщества
Я прошивал 10 штук и показалось что мелькнули одинаковые МАСи. Ну показалось подумал. И ладно.
Но вот поимел последствия этого в виде устройств меняющиеся местами.
Роутер выделяет 10 IP адресов. Время замены адресов в роутере=0 (то есть никогда).
Включили девайсы, зарегистрировали в системе под IP адресами. Через пару дней пропало питание. Включили. Все адреса на месте, но поменялись местами. Я так понимаю что роутер запоминает IP ассоциируя его с МАС. А если один включился быстрее других то он занимает МАС из пула. А роутер ставит ему в соответствии адрес. Вот и получаем попрыгунчика. Я по другому не могу объяснить эту ситуацию.
При тестах у меня постоянно возникают ситуации с множественными модулями с одинаковыми MAC. Никаких проблем это не доставляет роутеру. Смешные ситуации есть, но они более связаны с таблицей route в Windows, а не MAC.
Поочередное включение модулей с одинаковым МАС особенно часто использую для тестов - выдаваемый роутером адрес IP выходит одинаковым, но только на время, установленное "на аренду" в DHCP, если не прописано отдельно (жестко задано в настройках).
 

LDL

New member
По-другому это объясняется просто: Вы не знаете как работает DHCP. Если нужно зафиксировать IP для данного MAC - прописывается статическая аренда вне пула динамически выделяемых IP-адресов.
Я знаю как работает DHCP! Проблема в том что меняется МАС при перезагрузке ESP и роутер на новый МАС подключает IP от другого устройства, у которого этот МАС был до этого. Статический IP я присвоить не могу (да и как если МАС прыгает). Поэтому то в роутере срок аренды установлен в ноль (аренда бессрочная). По этому то и был вопрос какой МАС у ESP - уникальный статический или динамический.
 

rst

Member
Проблема в том что меняется МАС при перезагрузке ESP
Вы в этом уверены??? Если это так, то это какой-то баг в прошивке вероятно.
И я на своих ESP такого не наблюдал. Я бы это заметил, так как в роутер у меня даёт WiFi только устройствам с известным ему MAC.

По этому то и был вопрос какой МАС у ESP - уникальный статический или динамический.
Не бывает никаких динамических MAC. MAC должен быть уникален для сети и константой для устройства.
 

rst

Member
Я знаю как работает DHCP!
А как работает DHCP Вы не знаете. Иначе бы понимали, что никто не обязывает DHCP-сервер выдавать при каждом запросе новый адрес DHCP-клиенту. Так что Вас спасёт только статическая привязка IP-MAC.
 

UltraGad

New member
Должен быть уникальным. По идее.
Без идей, пришло сегодня 10 лолин, 3 перешивал - MAC-адреса одинаковые
Когда шил 2ю, думал показалось, но ради проверки зашил 3ю - сомнения подтвердились.
Что делать ? Как изменить MAC ?
 

Алексей.

Active member
wifi_set_macaddr
Function: set mac address
Note: only can be used in user_init
Function definition:
bool wifi_set_macaddr(uint8 if_index, uint8 *macaddr)
Parameter:
uint8 if_index – set station mac or softAP mac
#define STATION_IF 0x00
#define SOFTAP_IF 0x01
uint8 *macaddr – mac address
Example:
char sofap_mac[6] = {0x16, 0x34, 0x56, 0x78, 0x90, 0xab};
char sta_mac[6] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab};
wifi_set_macaddr(SOFTAP_IF, sofap_mac);
wifi_set_macaddr(STATION_IF, sta_mac);
Return:
True - succeed;
False - fail.
источник
 
Сверху Снизу