Определение типа девайса без веб обработки при подключении к WiFi
Задача реализовать следующее:
Есть WiFi — необходимо определять тип устройства (Mac/PC/Android/iOS/etc) и в зависимоти от типа открывать или нет постобработку веб авторизации.
Юзерстори:
Пользователи PC при подключении могут сразу выходить в асечку, а пользователям Mac нужно открывать браузер, нажимать Agree и потом уже открывать асечку.
Вопрос в том:
Реально ли это и где копать, если реально. Гугл забит попсовыми профанскими ответами при поиске по ключевым словам.
Можно поискать базы со списками пулов MAC-адресов. А если уж кто-то мак меняет, то это проблема… Вариант, конечно, есть — nmap-ом порты проверять (он умеет с выводом точности угадывать ОС).
Устройства Apple (и MacOS и iOS) после подключения к WiFi лезут сразу на сервера apple для того, чтобы проверить есть ли у этой сети выход в интернет. Если по условному адресу получена ожидаемая страница — значит считается что сеть имеет выход в интернет и дальше все работает как обычно. Если же получена какая-то другая страница — то она показывается пользователю в браузере (это значит что вместо серверов apple ответил captive portal WiFi роутера). По этому поведению можно определить устройства Apple. PC c Windows 7 тоже вроде как проверяют сеть на наличие доступа в инет (стучатся на сервера microsoft).
Так что возможное решение — отследить куда ломятся Mac и вместо этой страницы выдавать свою с кнопкой Agree. Остальные страницы отдавать напрямую.