#include #include const byte DNS_PORT = 53; IPAddress apIP(192, 168, 1, 1); DNSServer dnsServer; WiFiServer server(80); String responseHTML = "" "CaptivePortal" "

Hello World!

This is a captive portal example. All requests will " "be redirected here.

"; void setup() { WiFi.disconnect(); //added to start with the wifi off, avoid crashing WiFi.mode(WIFI_OFF); //added to start with the wifi off, avoid crashing WiFi.mode(WIFI_AP); WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); WiFi.softAP("DNSServer CaptivePortal example"); // if DNSServer is started with "*" for domain name, it will reply with // provided IP to all DNS request dnsServer.start(DNS_PORT, "*", apIP); server.begin(); } void loop() { dnsServer.processNextRequest(); WiFiClient client = server.available(); // listen for incoming clients if (client) { String currentLine = ""; while (client.connected()) { if (client.available()) { char c = client.read(); if (c == '\n') { if (currentLine.length() == 0) { client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println(); client.print(responseHTML); break; } else { currentLine = ""; } } else if (c != '\r') { currentLine += c; } } } client.stop(); } }