0

我正在尝试以 0 成功绕过 iOS 上的强制门户。Web 服务器是基于 WiFiManager.h 库的 Wemos ESP8266,我一直在研究该库以满足我的需要。实现的功能之一是在板设置为 Wifi 后立即在 HTML 上打印板的 IP 地址,然后关闭板的 WiFi 信号。

我成功地将 PC 用户重定向到所需的页面,但我使用强制门户很难存档此类功能​​。在我的研究中,我发现这段<html> success </html>代码可以欺骗俘虏以为我有互联网连接!但我未能正确实施。

有人可以帮忙吗?如何正确处理代码以便绕过俘虏。泰

4

1 回答 1

1

在 setup() 中使用 Arduino IDE/bootloader 我会:

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。它只是连接到网络,就好像它有 Internet 连接一样。

于 2019-04-22T02:21:59.803 回答