Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Как мне получить MAC-адрес клиента для кастомного captive portal?, UniFi Network
 
Я пытаюсь заставить работать этот код для кастомного captive портала: https://help.ubnt.com/hc/en-us/articles/204950374-UniFi-Custom-Portal-With-Individual-Usernames-and-Passwords- И не понимаю, как эта штука должна получить MAC-адрес. Этот участок кода вроде как должен это делать:

session_start(); // Получаем MAC-адрес и записываем его в _SESSION, чтобы он был доступен во всём процессе авторизации  
if ($_GET['id']) {
 $id = $_GET['id'];
} else {  
 echo "Прямой доступ не разрешён";  
 exit();  
}

Но любой клиент, который заходит на страницу, просто получает ошибку "Прямой доступ не разрешён". Ещё я не понимаю, как PHP вообще может получить MAC-адрес клиента — вроде нет никакого официального способа это сделать. Так в чём подвох? Есть у кого-нибудь реально работающий вариант?
 
@slooffmaster

Ты уже нашёл способ узнать MAC-адрес без настройки внешнего портала в контроллере UniFi?
 
@iLevac

Если устройство уже подключено к сети и у вас есть локальный IP, вы можете легко получить список подключённых клиентов. WebRTC можно использовать только через браузеры или Node.js. Все остальные попытки ни к чему не приведут.
 
@slooffmaster

Я не хочу перенаправлять своих клиентов. Сейчас пробую WebRTC. Есть способ получить приватный IP, так что это должно сработать.
 
@iLevac

Вот пример кода: https://gist.github.com/malle-pietje/c030e9d6ccdc1c3ddfdfc4363ba79489
 
@iLevac

Если клиент проходит через captive portal контроллера, то можно получить MAC-адрес (контроллер получает его через редирект с точки доступа или коммутатора) в файле index.html настраиваемых JSP-страниц captive portal. Если посмотреть документацию, там есть несколько переменных "unifi", которые можно вставить в URL редиректа в виде GET-параметров. По моему опыту, это лучший способ захватить MAC-адрес и передать его на ваш кастомный captive portal.
 
Как контроллер может назначить правильный MAC-адрес? Я не понимаю. Это последняя функция, которая мне действительно нужна в моём кастомном «контроллере». Я совершенно в тупике. Должен же быть какой-то способ. С уважением, iLevac
 
@iLevac

Нет, ни браузер, ни сервер обычно не имеют доступа к MAC-адресу устройства клиента. И это к лучшему ;-) Единственный способ это сделать — когда устройство клиента и запрашивающий сервер находятся в одной TCP/IP-сети, и вы можете отправить arp-запрос по IP-адресу. Вот немного дополнительной информации: https://www.lifewire.com/find-a-mac-address-using-an-ip-address-818132. Сомневаюсь, что это будет практично в большинстве случаев.
Страницы: 1
Читают тему (гостей: 1)