使用 Esp8266 通过 Captive Portal
Passing Captive Portal with Esp8266
我正在尝试绕过 iOS 上的强制门户,成功率为 0。 Web 服务器是基于 WiFiManager.h lib 的 Wemos ESP8266,我一直在研究 lib 以满足我的需要。实现的功能之一是在开发板设置为 Wifi 后立即在 HTML 上打印开发板的 IP 地址,然后关闭开发板的 WiFi 信号。
我成功地将 PC 用户重定向到所需的页面,但我使用强制门户很难存档此类功能。
在我的研究中,我发现这个 <html> success </html>
代码可以让俘虏误以为我有互联网连接!但我没能正确实施。
有人可以帮忙吗?如何正确处理代码以便俘虏被绕过。泰
在 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 连接一样。
我正在尝试绕过 iOS 上的强制门户,成功率为 0。 Web 服务器是基于 WiFiManager.h lib 的 Wemos ESP8266,我一直在研究 lib 以满足我的需要。实现的功能之一是在开发板设置为 Wifi 后立即在 HTML 上打印开发板的 IP 地址,然后关闭开发板的 WiFi 信号。
我成功地将 PC 用户重定向到所需的页面,但我使用强制门户很难存档此类功能。
在我的研究中,我发现这个 <html> success </html>
代码可以让俘虏误以为我有互联网连接!但我没能正确实施。
有人可以帮忙吗?如何正确处理代码以便俘虏被绕过。泰
在 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 连接一样。