내 목표는 웹사이트를 통해 일부 장치에 대한 사용자 인터페이스를 만드는 것입니다. 장치에는 WiFi 핫스팟이 실행되고 있으며 사용자는 이에 연결할 수 있습니다. 그런 다음 나는 몇몇 공항에서 보았지만 어떻게 해야 할지 몰랐던 "뭔가"를 하고 싶었습니다.
공항에서 무료 Wi-Fi를 사용할 때 가끔 핫스팟에 연결한 후 스마트폰에 자동으로 웹페이지가 열리고 해당 핫스팟을 통해 제공되는 인터넷을 사용하기 위해 등록할 수 있습니다.
동일한 작업을 수행할 수 있다면 사용자에게 좋을 것입니다. 연결되면 장치를 구동하기 위해 IP 주소(또는 DNS를 실행하는 경우 웹서버 이름)를 입력할 필요가 없습니다. 사용 사례 시나리오는 다음과 같습니다. 핫스팟에 연결하면 올바른 웹 사이트가 자동으로 장치에 나타납니다.
이것을 달성하는 방법을 말해 줄 수 있습니까?
PS 이 핫스팟은 인터넷 연결을 제공하지 않으며 가장하지도 않고 라우팅하지도 않으며 자체에만 연결됩니다. 임베디드 리눅스에서 실행됩니다.
답변1
당신이 원하는 것은 캡티브 포털입니다. 실제로 인터넷 연결을 제공하는 것이 필수는 아닙니다.
그러나 예를 들어 iOS, Windows, Mac OS 및 Android 테스트는 모두 Wi-Fi가 제대로 작동하는지 테스트하기 위한 공통 URL을 알고 있으며가능한클라이언트에서 Wi-Fi 아이콘을 정상적으로 표시하도록 설정해야 합니다.
귀하의 요구 사항은 가능하지만 너무 많은 소프트웨어를 설치하지 않고 순전히 Linux에서 수행하려면 일부 웹 서버/서비스 및 DNS 서버/서비스 스푸핑(+DCHP 및 Hostpad)이 필요합니다.
자동 웹 페이지/로그인 경고를 받으려면 포트가 장치를 강제로 리디렉션하는 첫 번째 페이지에 WISPr 태그를 배치해야 합니다. 이 분야에 대한 경험이 없는 사람들의 주요 주의 사항은 WISPr 태그가 동일한 페이지를 다시 가리킬 수 없다는 것입니다. 왜냐하면 그렇게 되면 반복적인 요청이 발생하기 때문입니다.
이를 수행하는 방법에 대한 탐색경로 단서를 보려면 U&L의 다음 질문을 방문하세요.
wpa_supplicant를 사용하여 캡티브 포털 로그인 페이지를 통해 WiFi 네트워크에 연결
Mac이 Wi-Fi 핫스팟에 연결할 수 없습니다. - Google 스타벅스
하나를 제외한 모든 주소에 대해 dnsmasq 삭제/거부/리디렉션 쿼리를 할 수 있나요?
관련된:
답변2
액세스 포인트가 필요합니다. 이미 가지고 있다고 가정하는 하드웨어에 따라, Hostapd는 아마도 AP를 구동하는 상당히 표준적인 소프트웨어일 것입니다.
클라이언트에 IP를 제공하려면 표준 설정을 갖춘 DHCP 서버가 필요합니다.
장치 IP에 대한 요청을 해결하려면 DNS 서버를 구성해야 합니다.https://serverfault.com/questions/351108/using-dnsmasq-to-resolve-all-hosts-to-the-same-address
클라이언트가 실제로 요청하는 호스트에 관계없이 모든 요청에 응답할 수 있는 HTTP 서버가 필요합니다. Apache는 기본적으로 이 작업을 수행합니다(가상 호스트는 비활성화되어 있습니다).
물론 클라이언트 장치에서 브라우저가 자동으로 열리지는 않습니다. 그러나 사용자가 브라우저를 열면 일반적으로 기본 홈페이지로 이동하려고 시도하며 설정에 기기 페이지가 표시됩니다.