포로 포털 팝업 : 결정적인 가이드 [닫기]


13

WiFi 캡처 포털을 수동으로 구현하고 있습니다. 나는 거의 모든 것이 작동하지만 모든 것이 단 하나의 장애입니다. 나는 모든 사람들이 완벽한 경험을 위해 모바일 OS (또는 컴퓨터 OS) 포로 포털 팝업을 보길 원합니다.

그들 각각은 트위스트 방식을 가지고 있기 때문에 일관된 크로스 플랫폼 경험을 얻을 수없는 것 같습니다.

이를 위해 (1) WiFi 클라이언트의 URL 요청을 로그인 페이지로 리디렉션해야하는 대상 및 / 또는 (2) WiFi를 리디렉션하는 데 사용할 수있는 nginx 또는 apache 웹 서버 구성을 설명하는 데 도움을 줄 수 있습니까? 클라이언트가 로그인 페이지에?

이 예에서 제 포탈 포털 로그인 페이지는 http : //captiveportal.lan 입니다. 이 문제를 해결하려는 일부 운영 체제는 다음과 같습니다.


안드로이드 4/5/6

  • 아파치 :
    RedirectMatch 302 /generate_204 http://captiveportal.lan
  • nginx :?

이전 안드로이드 버전

  • 아파치 :?
  • nginx :?

iOS 8

  • 아파치 .htaccess :
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ^CaptiveNetworkSupport(.*)$ [NC]
    RewriteRule ^(.*)$ http://captiveportal.lan [L,R=302]

  • nginx :?

이전 iOS 버전

  • 아파치 :?
  • nginx :?


윈도우 폰

  • 아파치 :
    RedirectMatch 302 /ncsi.txt http://captiveportal.lan
  • nginx :?


윈도우 7 \ 8 \ 10

  • 아파치 : Windows Phone을 참조하십시오 (win7에서 작동).
  • nginx :?

맥 OS

  • 아파치 :?
  • nginx :?

Amazon Kindle-팝업이 있습니까?

  • 아파치 :?
  • nginx :?

5
너무 광범위하지 않고 단순히 다중 플랫폼 문제입니다. 아마도 가장 다중 플랫폼 문제가있을 수 있습니다. 또한 "주목할만한 질문"상태 (2,500 회 이상보기)에 도달하여 사람들이 실제로 관심을 갖고 있으며 기여금이 쏟아지는 것을 방지함으로써 모든 사람에게 엄청난 장애를 초래하고 있습니다.
ppparadox

게시물 주셔서 감사합니다; 그것은 나를이 할 수 unix.stackexchange.com/questions/386242/...
루이 F 리베

답변:


6

모든 모바일 OS는 웹 페이지를 확인하여 포로 포털 뒤에 있는지 여부를 결정합니다.

메커니즘은 다음과 같습니다.

  1. GET / POST http://foo.com/bar.html
  2. bar.html == [예상 컨텐츠]> 인터넷 열기
  3. bar.html! = [예상 컨텐츠]> 캡 티브 포털
  4. bar.html [status]! = 성공> 네트워크 없음

또한 iOS의 경우 액세스 권한이없는 도메인없는 네트워크가 홈 네트워크 인 것으로 가정하고 Wi-Fi 포털 대신 네트워크 없음으로 표시하므로 WiFi 네트워크 용 도메인이 있어야합니다.

HTTP Success를 사용하여 다음 URL을 캡 티브 포털로 명시 적으로 리디렉션하십시오.

안드로이드 / 크롬 북 :

  • clients3.google.com

iOS 6 :

  • gsp1.apple.com
  • * .akamaitechnologies.com

IOS 7:

  • www.appleiphonecell.com
  • www.airport.us
  • * .apple.com.edgekey.net
  • * .akamaiedge.net
  • * .akamaitechnologies.com

iOS 8/9 :

윈도우

  • ipv6.msftncsi.com
  • www.msftncsi.com

많은 공급 업체에서도 사용자 에이전트 "CaptiveNetworkSupport"를 사용하기 시작했지만 위의 URL 방법만큼 일반적이지 않습니다. UA를 확인하고 항상 포털 페이지를 제공하십시오 ... 100 % 작동하지 않습니다.

URL 방법을 사용하고 있으며 정상적으로 작동하고 있습니다.


팝업을 얻는 데 사용하는 일부 웹 서버 conf \ firewall rules \ php 스 니펫을 공유 하시겠습니까?
ppparadox

Android v6이 다른 URL을 사용하는 것 같습니다. connectivitycheck.gstatic.com 여기에 언급
DavidT

테스트 URL을 명시 적으로 리디렉션해야하는 이유는 무엇입니까? 사용자가 로그인 할 때까지 모든 URL에 대한 로그인 페이지를 제공하지 않습니까?
AShelly

3

아마존 킨들 (화재)

Amazon Kindle (Fire)은 다음과 같은 요청을하며, "...을 검색 할 수없는 경우 사용자가 로그인해야하고 로그인 화면을 포기한다고 가정합니다.":

iOS 8.4

최신 iOS의 경우 "/hotspot-detect.html"뿐만 아니라 http://captive.apple.com에 대한 요청의 모든 URI를 일치 시켜야했습니다.

iOS 8.4 클라이언트는 임의로 생성 된 URI로 요청을합니다 (예 : "/xmqPyZUv/3r8jTjv8.html"및 "/ 7exN0TV7q0COX0 / eKlBU8baU2tape / fjXUzDHBdE6W0O / BGbw7iYU2DVBh1 / sVBTT8에 대한"요청에 대한 URL 요청에 따라 "/xmqPyZUv/3r8jTjv8.html")


1
iOS 8.4는 UserAgent를 "CaptiveNetworkSupport"로 설정합니까? 팝업을 얻는 데 사용하는 일부 웹 서버 conf \ firewall rules \ php 스 니펫을 공유 하시겠습니까? 또한 왜 누군가가 이유를 설명하지 않고 당신을 억압 했습니까? 바보 같은 사람들 ...
ppparadox

정확한 에이전트 문자열은 "CaptiveNetworkSupport-277.10.5 wispr"입니다. 이 질문에 나열된 이러한 요청을 로그인 페이지로 리디렉션하면 Apple iOS가 로그인 페이지를 팝업하고 Android에 로그인 헤더 표시 줄이 표시됩니다. 로그인 페이지에서 성공적으로 로그인 한 후, 캡 티브 포털 시스템은 팝업 창과 로그인 표시 줄이 사라지도록 이러한 HTTP 요청이 성공하도록 허용해야합니다. Linux, dnsmasq 및 Apache httpd 서버 만 사용하여 작성한 사용자 정의 포로 포털에서이를 성공적으로 테스트했습니다.
Russell E Glaue

Kindle이 해당 사용자 에이전트도 설정하는지 묻지 않았습니다.
ppparadox

1
킨들에게 나는 "달빅 /2.1.0 (리눅스; U; 안드로이드 5.0.1; VS985 4G 빌드 / LRX21Y)"(킨더 응용 프로그램입니까?)을보고 있습니다. 이 스레드 mobileread.com/forums/showthread.php?t=188439 는 "Mozilla /5.0 (Linux; iPhone; U; en-US) AppleWebKit / 528.5 + (Kcko, Gecko, Safari / 528.5 +) 버전 /4.0 "
Russell E Glaue

1
@ppparadox 게시 한 후 왜 다운 투표를 받았는지 모르겠습니다. 당신이 저의 공헌을 좋아한다면, 공감하십시오. 감사.
Russell E Glaue
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.