Проходящий портал с Esp8266 - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь с 0 успехами обойти плененный портал на iOS.Веб-сервер - это Wemos ESP8266 на основе библиотеки WiFiManager.h. Я работал над библиотекой в ​​соответствии со своими потребностями.Одной из реализованных функций была печать IP-адреса платы в формате HTML, как только плата настроена на Wi-Fi, а затем отключение сигнала WiFi платы.

Мне удается успешно перенаправить пользователей ПК нажелаемую страницу, но я с порталом портала трудно архивировать такую ​​функцию.В моем исследовании я нашел этот <html> success </html> код, чтобы обмануть пленника и подумать, что у меня есть интернет-соединение!но я не могу реализовать это должным образом.

Может ли кто-нибудь помочь с этим?как правильно обрабатывать код, чтобы пленник был обойден.Ty

1 Ответ

0 голосов
/ 22 апреля 2019

Используя Arduino IDE / загрузчик в setup (), я делаю:

const byte DNS_PORT = 53;
IPAddress apIP(192, 168, 1, 1);
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("My Device SSID");

dnsServer.start(DNS_PORT, "*", apIP);

webServer.on("/hotspot-detect.html", handleAppleCaptivePortal);
webServer.begin();

Цикл просто

void loop() {
    dnsServer.processNextRequest();
    webServer.handleClient();
}

Функция обработчика выглядит следующим образом:

void handleAppleCaptivePortal() {
    String Page = F("<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>");

    webServer.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate");
    webServer.sendHeader("Pragma", "no-cache");
    webServer.sendHeader("Expires", "-1");
    webServer.send(200, "text/html", Page);
    return;
}

Это, кажется, полностью подделывает мой iPhone.Он просто подключается к сети, как если бы у него было подключение к Интернету.

...