Esir portal açılır pencereleri: kesin kılavuz [kapalı]


13

Manuel olarak bir WiFi tutsak portalı uyguluyorum. Hemen hemen her şeyi çalışıyorum ama tek bir aksaklık var: herkesin kusursuz bir deneyim için mobil işletim sistemlerini (veya bilgisayar işletim sistemlerini) esir portal pop-up'ını görmesini istiyorum.

Her birinin kendi bükülmüş bir yolu olduğundan, tutarlı bir platformlar arası deneyim elde edemiyorum.

Bunu yapmak için, (1) WiFi istemcilerinden hangi URL isteklerinin bir giriş sayfasına yönlendirilmesi gerektiğini ve / veya (2) WiFi'yi yönlendirmek için hangi nginx veya apache web sunucusu yapılandırmasının kullanılabileceğini açıklamak için biraz yardım alabilir miyim giriş sayfasına yönlendirir misiniz?

Bu örnekteki tutsak portal giriş sayfam http: //captiveportal.lan . İşte bu sorunu çözmek için çalışıyorum İşletim Sistemleri bazıları.


Android 4/5/6

  • Apache:
    RedirectMatch 302 /generate_204 http://captiveportal.lan
  • nginx:?

Önceki Android sürümleri

  • Apache:?
  • nginx:?

iOS 8

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

  • nginx:?

Önceki iOS sürümleri

  • Apache:?
  • nginx:?


Windows telefonu

  • Apache:
    RedirectMatch 302 /ncsi.txt http://captiveportal.lan
  • nginx:?


Windows 7 \ 8 \ 10

  • Apache: Windows Phone'a bakınız (Win7'de çalışır).
  • nginx:?

Mac os işletim sistemi

  • Apache:?
  • nginx:?

Amazon Kindle - Pop-up'ı var mı?

  • Apache:?
  • nginx:?

5
Hayır, çok geniş değil, sadece çok platformlu bir konudur. Belki de EN ÇOK çoklu platform sorunu olabilir. Ayrıca "dikkate değer soru" durumuna (2500'den fazla görüntüleme) ulaştı, bu yüzden insanlar gerçekten ilgileniyor ve katkıların dökülmesini önleyerek herkese BÜYÜK bir kötülük yapıyoruz. Utanç için!
ppparadox

Gönderi için çok teşekkürler; bunu yapmama izin verdi unix.stackexchange.com/questions/386242/…
Rui F Ribeiro

Yanıtlar:


6

Tüm mobil işletim sistemleri, bir portalın arkasında olup olmadıklarına karar vermek için bir web sayfasını kontrol eder.

Mekanizma şudur:

  1. GET / POST http://foo.com/bar.html
  2. Bar.html == [beklenen içerik]> İnternet'i açın
  3. Bar.html! = [Beklenen içerik]> Esir Portal
  4. Bar.html [status]! = BAŞARI> Ağ Yok ise

Ayrıca, iOS için, WiFi ağınız için bir etki alanına sahip olmanız gerekir çünkü erişimsiz etki alanı olmayan bir ağın bir ev ağı olduğunu ve yalnızca Captive Portal yerine Ağ Yok olarak işaretlediğini varsayarsınız.

Aşağıdaki URL'leri HTTP Başarısı ile açık bir şekilde portalinize yönlendirdiğinizden emin olun:

Android / Chromebook:

  • 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:

pencereler

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

Birçok satıcı, yukarıdaki URL yöntemi kadar yaygın olmasa da, "CaptiveNetworkSupport" Kullanıcı Aracısını kullanmaya başladı. Sadece UA'yı kontrol edin ve her zaman portal sayfanızı verin ...% 100 çalışmıyor.

URL yöntemini kullanıyorum ve iyi çalışıyor.


Açılır pencereyi elde etmek için kullandığınız bazı çalışan web sunucusu conf \ firewall kurallarını \ php snippet'lerini paylaşmak ister misiniz?
ppparadox

Görünüşe göre Android v6 farklı bir URL kullanıyor. Burada bahsedilen
DavidT

Test URL'lerini neden açık bir şekilde yönlendirmelisiniz? Kullanıcı giriş yapana kadar her URL için giriş sayfasını sunmaz mıydınız?
16'da

3

Amazon Kindle (Ateş)

Amazon Kindle (Fire) aşağıdaki isteği yapar ve alınamazsa "... kullanıcının oturum açması ve bir Oturum Açma ekranı açması gerektiğini varsayar":

iOS 8.4

En son iOS için, yalnızca "/hotspot-detect.html" değil , http://captive.apple.com adresine gönderilen tüm URI'lerle eşleşmem gerekiyordu.

iOS 8.4 istemcileri, rastgele oluşturulmuş URI'lerle istekte bulunuyor (ör. "/xmqPyZUv/3r8jTjv8.html" ve "/7exN0TV7q0COX0/eKlBU8baU2tape/fjXUzDHBdE6W0O/BGbw7iYU2DVBtt tobb to to to to to tab.


1
İOS 8.4 UserAgent'ı "CaptiveNetworkSupport" olarak mı ayarlıyor? Açılır pencereyi elde etmek için kullandığınız bazı çalışan web sunucusu conf \ firewall kurallarını \ php snippet'lerini paylaşmak ister misiniz? Ayrıca, neden birisi nedenini açıklamak için uğraşmadan sizi küçümsedi? Aptal insanlar ...
ppparadox

Tam ajan dizesi "CaptiveNetworkSupport-277.10.5 wispr" dir. Bu istekleri (bu soruda listelenmiştir) bir giriş sayfasına yönlendirdiğimde, Apple iOS bir giriş sayfası açacak ve Android bir giriş başlığı çubuğu gösterecektir. Oturum Açma sayfasında başarılı bir şekilde oturum açtıktan sonra, esir portal sisteminin, açılan pencerenin ve oturum açma çubuğunun kaybolması için bu HTTP isteklerinin başarılı olmasına izin vermesi gerekir. Bunu yalnızca Linux, dnsmasq ve Apache httpd sunucusu kullanarak oluşturduğum özel bir esir portalında başarıyla test ettim.
Russell E Glaue

Kindle'ın bu kullanıcı aracısını da ayarlayıp ayarlamadığını sormayı unuttum.
ppparadox

1
Kindle için "Dalvik / 2.1.0 (Linux; U; Android 5.0.1; VS985 4G Build / LRX21Y)" (belki bir kindle uygulaması?) Görüyorum. Bu konu mobileread.com/forums/showthread.php?t=188439 "Mozilla /5.0 (Linux; iPhone gibi; U; tr-TR) AppleWebKit / 528.5 + (KHTML, Gecko, Safari / 528.5 +) Sürüm / 4.0 "
Russell E Glaue

1
@ppparadox Gönderdikten sonra neden oyları düşürdüğümü bilmiyorum. Eğer katkımı beğendiyseniz, lütfen bana bir oy verin. Teşekkürler.
Russell E Glaue
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.