Похоже, что в ios7 URL-адрес, по которому устройство отправляет запрос, чтобы проверить, имеет ли он подключение к Интернету после подключения к Wi-Fi, изменилось (что намного хуже!).
в ios6 и ранее, запрос был:
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport/1.0 wispr
Connection: close
(источник)
Но теперь в ios7 он может получить доступ к "до 200" (согласно cisco).
Проверяя это самостоятельно, я могу подтвердить запросы случайным образом перейти на appleiphonecell.com, captive.apple.com, airport.us, ibook.info и другие.
Итак, мой вопрос: у кого-нибудь есть полный список этих URL-адресов (может быть, это только каждый домен, принадлежащий Apple)? Мы запускаем плененный портал на нашем Wi-Fi, но просто чтобы пользователи знали, что им нужно подключиться к VPN после подключения к Wi-Fi. Нажатие кнопки "отменить" на странице входа в журнал для порталов иногда представляет собой вариант "использование без Интернета", который затем позволит пользователю подключаться к VPN, но иногда нажатие "cancel" не дает этой опции и просто отключает Wi-Fi сразу, что означает, что пользователь не может подключиться к VPN.
Прежде чем мы могли просто подделать ответ на конкретный URL (library/test/success.html), который затем оставил бы подключенный Wi-Fi. Мы можем сделать это снова, если у нас есть список сайтов, к которым он может получить доступ, иначе нам, возможно, придется вернуться к чертежной доске с нашим невольным порталом! (Или ждите обновления ios7, который исправляет возможность "использовать без Интернета", который не появляется каждый раз). Подумайте, что сейчас мы будем искать на основе пользовательского агента, если это возможно.
Обновление Edit-wee, похоже, что UA остается согласованным, по крайней мере, с CaptiveNetworkSupport, являющимся общим знаменателем, поэтому мы пока перейдем к проверке UA.