WiFi ใน Android ตรวจพบได้อย่างไรว่าอุปกรณ์ต้องลงชื่อเข้าใช้หรือไม่?


28

เมื่ออุปกรณ์พยายามเชื่อมต่อกับจุดเข้าใช้งานหรือเราเตอร์อุปกรณ์นั้นจะต้องลงชื่อเข้าใช้ในหน้าพอร์ทัล captive พร้อมกับข้อความแจ้งว่า

"ลงชื่อเข้าใช้เครือข่าย Wi-Fi"

จุดเชื่อมต่อ / เราเตอร์ระบุได้อย่างไรว่าต้องมีการลงชื่อเข้าใช้สำหรับอุปกรณ์และกระบวนการด้านหลังเป็นอย่างไร

คำตอบ:


32

URL การตรวจจับจะแตกต่างกันไปตาม Android รุ่นต่าง ๆ

สำหรับ Marshmallow มันใช้ connectioncheck.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 การตรวจจับจะกระตุ้นการแจ้งเตือนหากไม่สามารถเข้าถึงได้ นอกจากนี้ฉันต้องการจุดเชื่อมต่อของฉันเพื่อตอบสนองต่อคำขอนี้ด้วยเนื้อหาบางประเภท - ในกรณีของฉันฉันส่งคืน 200 รหัสรวมทั้งหน้าดัชนีของเว็บเซิร์ฟเวอร์ของฉันเมื่อร้องขอ / generate_204 หากไม่มีเนื้อหาในการตอบกลับโดยไม่คำนึงถึงรหัสส่งคืนฉันจะได้รับการแจ้งเตือน "Wi-Fi ไม่มีการเข้าถึงอินเทอร์เน็ต"
ubomb

@ubomb ดูเหมือนแปลกเพราะhttp://connectivitycheck.gstatic.com/generate_204จริง ๆ แล้วส่งคืน 204 โดยไม่มีเนื้อหาและเห็นได้ชัดว่าใช้งานได้ บางทีคุณเพิ่งออกจากContent-Length: 0ส่วนหัว
Tamir Daniely

9

เทคโนโลยีนี้เรียกว่า "Captive portal" มีการใช้งานหลายอย่าง อย่างที่ฉันทราบแล้ว Android พยายามเข้าถึงไฟล์ที่มีชื่อgenerate_204ในเซิร์ฟเวอร์ Google เครื่องใดเครื่องหนึ่งและถ้าเป็นไปไม่ได้การแจ้งเตือนจะถูกสร้างขึ้น

อ่านเพิ่มเติมเกี่ยวกับ 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 ข้อมูลที่นำมาจากไซต์นี้สำหรับโครเมียมซึ่งน่าจะเหมือนกันสำหรับ Android chromium.org/chromium-os/chromiumos-design-docs/…
benjamin

2

โดยปกติแล้วพอร์ทัลแบบ Captive จะถูกนำไปใช้โดยการรับส่งข้อมูลทั้งหมดไปยังการตอบสนอง HTTP ที่ถูกต้อง (200) การตอบสนอง HTTP นี้เป็นสิ่งที่ปรากฏในพอร์ทัลที่ถูกจับ

สามารถทำได้ด้วยเครื่องมือเช่น iptables หรือ dnsmasq

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.