ЕСПка работает в режиме SoftAP. При подключении клиента вижу что он подключен, но при отключении происходит что то странное. Если подключаюсь планшета, то после отключения клиента нет. Если подключаюсь другой ЕСПкой, то после отключение клиента продолжает показывать его присутствие и даже его IP и MAC адрес. Если подключить 2 ЕСКи и планшет, то после отключения клиент планшета из списка проподает, но клиенты ЕСПок продолжает показывать.
При том клиенты ЕСПок после отклучения/подключения показывает неправильный MAC - показывает МАC от той ЕСПки, которая до этого висела на тот же IP адрес
Где искать проблему и как её решить?
Объясню из-за чего мне это. Надо знать когда подключилась станция с конкретным МАC адресом. Может быть есть другие методы, как это узнать?
При том клиенты ЕСПок после отклучения/подключения показывает неправильный MAC - показывает МАC от той ЕСПки, которая до этого висела на тот же IP адрес
Где искать проблему и как её решить?
Объясню из-за чего мне это. Надо знать когда подключилась станция с конкретным МАC адресом. Может быть есть другие методы, как это узнать?
Код:
void client_status() {
unsigned char number_client;
struct station_info *stat_info;
struct ip_addr *IPaddress;
IPAddress address;
int i = 1;
number_client = wifi_softap_get_station_num();
stat_info = wifi_softap_get_station_info();
Serial.print(" Total connected_client are = ");
Serial.println(number_client);
while (stat_info != NULL) {
IPaddress = &stat_info->ip;
Serial.print("client= ");
Serial.print(i);
Serial.print(" ip adress is = ");
Serial.print((address));
Serial.print(" with mac adress is = ");
Serial.print(stat_info->bssid[0], HEX);
Serial.print(stat_info->bssid[1], HEX);
Serial.print(stat_info->bssid[2], HEX);
Serial.print(stat_info->bssid[3], HEX);
Serial.print(stat_info->bssid[4], HEX);
Serial.print(stat_info->bssid[5], HEX);
address = IPaddress->addr;
stat_info = STAILQ_NEXT(stat_info, next);
i++;
Serial.println();
}
wifi_softap_free_station_info();
}
Последнее редактирование: