Làm thế nào để WiFi trong Android phát hiện nếu thiết bị phải đăng nhập hay không?


28

Khi thiết bị cố gắng kết nối với điểm truy cập hoặc bộ định tuyến, thiết bị phải đăng nhập trên trang cổng bị khóa với thông báo cho biết

"Đăng nhập vào mạng Wi-Fi".

Làm thế nào để điểm truy cập / bộ định tuyến xác định rằng cần phải đăng nhập cho thiết bị và quá trình đằng sau nó là gì?

Câu trả lời:


32

Url phát hiện khác nhau giữa các phiên bản Android khác nhau.

Đối với Marshmallow, nó sử dụng Connectioncheck.gstatic.com/generate_204, kiểm tra mã ở đây AndroidXRef - Marshmallow 6.0.0_r1

Đối với Kitkat, nó sử dụng client3.google.com/generate_204 kiểm tra mã AndroidXRef - KitKat 4.4.4_r1


thực ra đây là câu trả lời tốt hơn nhiều và nên được đánh dấu là câu trả lời đúng
Moataz Elmasry

Tôi không muốn chiếm đoạt câu trả lời bằng cách chỉnh sửa nó, vì vậy tôi sẽ chỉ để lại nhận xét. Phải mất một thời gian tôi mới nhận ra rằng URL phát hiện sẽ kích hoạt thông báo nếu không thể truy cập được. Ngoài ra, tôi cần điểm truy cập của mình để đáp ứng yêu cầu này với một số loại nội dung - trong trường hợp của tôi, tôi đã trả lại 200 mã cũng như trang chỉ mục của máy chủ web của mình khi / created_204 được yêu cầu. Không có nội dung trong phản hồi, bất kể mã trả về, tôi sẽ nhận được thông báo "Wi-Fi không có quyền truy cập Internet".
ubomb

@ubomb Có vẻ kỳ lạ, vì http://connectivitycheck.gstatic.com/generate_204thực sự trả về 204 không có nội dung và rõ ràng là hoạt động. Có lẽ bạn vừa rời khỏi Content-Length: 0tiêu đề.
Tamir Daniely

9

Công nghệ này được gọi là "Cổng thông tin bị giam giữ". Có một số triển khai. Như tôi biết, Android cố gắng truy cập một tệp có tên generate_204trên một trong các máy chủ của Google và nếu không thể, thông báo sẽ được tạo.

Đọc thêm trên Wikipedia: Captive_portal


Trên thực tế tôi biết về cổng thông tin bị giam cầm. Nhưng tôi biết URL cụ thể để kiểm tra nó. Tôi muốn biết làm thế nào nó là công việc. Không phải nó là gì.
Sagar Vaghela

1
Ý bạn là gì - "công việc thế nào"? Android gửi yêu cầu và nếu không có phản hồi tích cực, điều đó có nghĩa là không có kết nối với internet và thông báo được tạo. Đó là cách nó hoạt động.
Άδρς

Đó là URL cụ thể mà yêu cầu Android. Tôi đã đề cập trong câu hỏi.
Sagar Vaghela

2
Trong bình luận trước của bạn, bạn nói rằng bạn biết URL cụ thể. Tôi nghĩ đó làhttps://www.gstatic.com/generate_204
Άδρ

2
URL dường như là client3.google.com/generate_204 . Thông tin được lấy từ trang web này cho crom có ​​lẽ giống với Android. chromium.org/chromium-os/chromiumos-design-docs/ từ
benjamin

2

Một cổng bị khóa thường được triển khai bằng cách hướng tất cả lưu lượng truy cập đến phản hồi HTTP hợp lệ (200). Phản hồi HTTP này là những gì xuất hiện trong cổng bị khóa.

Điều này có thể được thực hiện với các công cụ như iptables hoặc dnsmasq.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.