Я пытаюсь заставить работать этот код для кастомного captive портала: И не понимаю, как эта штука должна получить MAC-адрес. Этот участок кода вроде как должен это делать:
session_start(); // Получаем MAC-адрес и записываем его в _SESSION, чтобы он был доступен во всём процессе авторизации
if ($_GET['id']) {
$id = $_GET['id'];
} else {
echo "Прямой доступ не разрешён";
exit();
}
Но любой клиент, который заходит на страницу, просто получает ошибку "Прямой доступ не разрешён". Ещё я не понимаю, как PHP вообще может получить MAC-адрес клиента — вроде нет никакого официального способа это сделать. Так в чём подвох? Есть у кого-нибудь реально работающий вариант?
session_start(); // Получаем MAC-адрес и записываем его в _SESSION, чтобы он был доступен во всём процессе авторизации
if ($_GET['id']) {
$id = $_GET['id'];
} else {
echo "Прямой доступ не разрешён";
exit();
}
Но любой клиент, который заходит на страницу, просто получает ошибку "Прямой доступ не разрешён". Ещё я не понимаю, как PHP вообще может получить MAC-адрес клиента — вроде нет никакого официального способа это сделать. Так в чём подвох? Есть у кого-нибудь реально работающий вариант?

Единственный способ это сделать — когда устройство клиента и запрашивающий сервер находятся в одной TCP/IP-сети, и вы можете отправить arp-запрос по IP-адресу. Вот немного дополнительной информации: . Сомневаюсь, что это будет практично в большинстве случаев.