Я пытаюсь реализовать захватывающий портал на небольшом встраиваемом устройстве.
Насколько я понимаю, все, что мне нужно, это захватить запросы смартфона по специальным URL-адресам и отправить ответ, содержащий страницу адаптивного портала. Чтобы не поддерживать список всех возможных URL-адресов, я настроил DNS, который разрешает все хосты на IP-адрес моего устройства.
Теперь, когда я подключаю устройство Android к своей сети, я перехватываю запрос к /generate_204
и отправляю ответ перенаправления. Вот пример запроса и ответа от команды curl:
curl -v http://google.com/generate_204
* Trying 192.168.1.1...
* Connected to google.com (192.168.1.1) port 80 (#0)
> GET /generate_204 HTTP/1.1
> Host: google.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Content-Type: text/html
< Content-Length: 0
< Location: /
<
* Connection #0 to host google.com left intact
Используя Postman / Chrome, я перенаправляюсь на 192.168.1.1/, и необходимая страница загружается. Однако я протестировал 4 устройства Android, и только одно показало мне всплывающее окно. Та же проблема с ios. Я поймал запрос, чтобы /hotspot-detect.html
возвратил тот же ответ, что и выше, и ничего не произошло. Что мне здесь не хватает?
Спасибо!