기기의 로그인 여부를 Android의 WiFi에서 어떻게 감지합니까?


28

장치가 액세스 포인트 또는 라우터에 연결을 시도하면 캡 티브 포털 페이지에서 다음과 같은 메시지와 함께 로그인해야합니다.

"Wi-Fi 네트워크에 로그인"

액세스 포인트 / 라우터는 장치에 로그인이 필요하다는 것을 어떻게 식별하고 그 뒤에 어떤 프로세스가 있습니까?

답변:


32

감지 URL은 Android 버전마다 다릅니다.

Marshmallow의 경우 connectivitycheck.gstatic.com/generate_204를 사용하고 여기에서 코드를 확인하십시오. AndroidXRef-Marshmallow 6.0.0_r1

Kitkat의 경우 clients3.google.com/generate_204를 사용하여 AndroidXRef-KitKat 4.4.4_r1 코드를 확인하십시오.


실제로 이것은 훨씬 더 나은 답변이며 정답으로 표시되어야합니다
Moataz Elmasry

답변을 수정하여 도용하고 싶지 않았으므로 의견을 남기겠습니다. 감지 URL이 알림에 도달 할 수없는 경우 알림을 트리거한다는 것을 깨닫는 데 시간이 걸렸습니다 . 또한 일종의 콘텐츠 로이 요청에 응답하기 위해 액세스 포인트가 필요했습니다. 필자의 경우 / generate_204가 요청되면 웹 서버의 인덱스 페이지뿐만 아니라 200 코드를 반환했습니다. 응답에 내용이 없으면 리턴 코드에 관계없이 "Wi-Fi에 인터넷에 액세스 할 수 없습니다"라는 알림이 표시됩니다.
ubomb

@ubomb은 http://connectivitycheck.gstatic.com/generate_204실제로 내용이없는 204를 반환하므로 분명히 이상하게 보입니다 . 어쩌면 방금 Content-Length: 0헤더를 생략했을 수도 있습니다 .
Tamir Daniely

9

이 기술을 "포털 포털"이라고합니다. 몇 가지 구현이 있습니다. 아시다시피 Android는 generate_204Google 서버 중 하나에 이름이 지정된 파일에 도달하려고 시도 하지만 가능하지 않은 경우 알림이 생성됩니다.

Wikipedia에 대한 추가 자료 : Captive_portal


실제로 나는 포로 포털에 대해 알고 있습니다. 하지만 확인을 위해 특정 URL을 알고 있습니다. 어떻게 작동하는지 알고 싶습니다. 그게 아니야
Sagar Vaghela

1
"어떻게 작동 하는가?"는 무슨 뜻입니까? Android는 요청을 보내고 긍정적 인 응답이 없으면 인터넷에 연결되어 있지 않고 알림이 생성됨을 의미합니다. 그것이 작동하는 방식입니다.
Άνδρας

어떤 안드로이드 요청에 대한 특정 URL입니다. 문제가 언급되었습니다.
Sagar Vaghela

2
이전 의견에서 특정 URL을 알고 있다고 말했습니다. 내 생각에https://www.gstatic.com/generate_204
Άνδρας

2
URL은 clients3.google.com/generate_204 인 것 같습니다 . 이 사이트에서 크롬에 대한 정보는 아마도 안드로이드와 동일합니다. chromium.org/chromium-os/chromiumos-design-docs/…
벤자민

2

포로 포털은 일반적으로 모든 트래픽을 유효한 HTTP 응답 (200)으로 지정하여 구현됩니다. 이 HTTP 응답은 캡 티브 포털에 표시됩니다.

iptables 또는 dnsmasq와 같은 도구를 사용하여 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.