Як WiFi в android визначає, чи має пристрій увійти чи ні?


28

Коли пристрій намагається підключитися до точки доступу або маршрутизатора, він повинен увійти на сторінку порталу, що перебуває у полоні, повідомленням

"Увійти до мережі Wi-Fi".

Як точка доступу / маршрутизатор визначає, що для входу потрібен вхід для пристрою та який процес знаходиться за ним?

Відповіді:


32

URL-адреса виявлення відрізняється між різними версіями Android.

Для Marshmallow він використовує connectivitycheck.gstatic.com/generate_204, перевірте тут код AndroidXRef - Marshmallow 6.0.0_r1

Для Kitkat він використовує client3.google.com/generate_204 перевірити код AndroidXRef - KitKat 4.4.4_r1


насправді це набагато краща відповідь, і її слід позначити як правильну відповідь
Моатас Ельмасрі

Я не хотів викрадати відповідь, редагуючи її, тому просто залишу коментар. Мені знадобилось певний час, щоб зрозуміти, що URL-адреса виявлення запускає сповіщення, якщо його неможливо отримати. Крім того, мені потрібна була точка доступу, щоб відповісти на цей запит певним вмістом - у моєму випадку я повернув код 200, а також індексну сторінку свого веб-сервера, коли запит / create_204 буде запропоновано. Без вмісту у відповіді, незалежно від коду повернення, я отримав би повідомлення "Wi-Fi не має доступу до Інтернету".
ubomb

@ubomb Здається дивним, оскільки http://connectivitycheck.gstatic.com/generate_204насправді повертає 204 без вмісту, і, очевидно, працює. Можливо, ви просто залишили Content-Length: 0заголовок.
Тамір Даніелі

9

Ця технологія називається «Портал у полоні». Є кілька реалізацій. Як я знаю, Android намагається отримати файл, названий generate_204на одному з серверів Google, і якщо це неможливо, сповіщення генерується.

Подальше читання у Вікіпедії: Captive_portal


Насправді я знаю про полонений портал. Але я знаю конкретну URL-адресу для перевірки. Я хочу знати, як це працює. Не те, що це.
Sagar Vaghela

1
Що ви маєте на увазі - «як це працює»? Android надсилає запит, і якщо немає позитивної відповіді, це означає, що підключення до Інтернету немає, і сповіщення створюється. Ось як це працює.
Άνδρας

Яка конкретна URL-адреса, на яку запитується Android. У мене йдеться про питання.
Сагар Вагела

2
У своєму попередньому коментарі ви сказали, що знаєте конкретну URL-адресу. Я думаю, що цеhttps://www.gstatic.com/generate_204
Άνδρας

2
Здається, що URL-адреса є client3.google.com/generate_204 . Інформація, взята з цього сайту для хрому, який, ймовірно, однаковий для android. chromium.org/chromium-os/chromiumos-design-docs/…
benjamin

2

Портал із захопленням, як правило, реалізується шляхом спрямування всього трафіку на дійсну відповідь HTTP (200). Ця відповідь HTTP - це те, що з'являється на порталі, що перебуває у фіксації.

Це можна зробити за допомогою таких інструментів, як iptables або dnsmasq.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.