/* ESP32 mDNS responder sample This is an example of an HTTP server that is accessible via http://esp32.local URL thanks to mDNS responder. Instructions: - Update WiFi SSID and password as necessary. - Flash the sketch to the ESP32 board - Install host software: - For Linux, install Avahi (http://avahi.org/). - For Windows, install Bonjour (http://www.apple.com/support/bonjour/). - For Mac OSX and iOS support is built in through Bonjour already. - Point your browser to http://esp32.local, you should see a response. */#include<WiFi.h>#include<ESPmDNS.h>#include<WiFiClient.h>constchar*ssid="sincgrid";constchar*password="sincgrid.com";// TCP server at port 80 will respond to HTTP requestsWiFiServerserver(80);voidsetup(void){Serial.begin(115200);// Connect to WiFi networkWiFi.begin(ssid,password);Serial.println("");// Wait for connectionwhile(WiFi.status()!=WL_CONNECTED){delay(500);Serial.print(".");}Serial.println("");Serial.print("Connected to ");Serial.println(ssid);Serial.print("IP address: ");Serial.println(WiFi.localIP());// Set up mDNS responder:// - first argument is the domain name, in this example// the fully-qualified domain name is "esp8266.local"// - second argument is the IP address to advertise// we send our IP address on the WiFi networkif(!MDNS.begin("esp32")){Serial.println("Error setting up MDNS responder!");while(1){delay(1000);}}Serial.println("mDNS responder started");// Start TCP (HTTP) serverserver.begin();Serial.println("TCP server started");// Add service to MDNS-SDMDNS.addService("http","tcp",80);}voidloop(void){// Check if a client has connectedWiFiClientclient=server.available();if(!client){return;}Serial.println("");Serial.println("New client");// Wait for data from client to become availablewhile(client.connected()&&!client.available()){delay(1);}// Read the first line of HTTP requestStringreq=client.readStringUntil('\r');// First line of HTTP request looks like "GET /path HTTP/1.1"// Retrieve the "/path" part by finding the spacesintaddr_start=req.indexOf(' ');intaddr_end=req.indexOf(' ',addr_start+1);if(addr_start==-1||addr_end==-1){Serial.print("Invalid request: ");Serial.println(req);return;}req=req.substring(addr_start+1,addr_end);Serial.print("Request: ");Serial.println(req);Strings;if(req=="/"){IPAddressip=WiFi.localIP();StringipStr=String(ip[0])+'.'+String(ip[1])+'.'+String(ip[2])+'.'+String(ip[3]);s="HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>Hello from ESP32 at ";s+=ipStr;s+="</html>\r\n\r\n";Serial.println("Sending 200");}else{s="HTTP/1.1 404 Not Found\r\n\r\n";Serial.println("Sending 404");}client.print(s);client.stop();Serial.println("Done with client");}
Testing discovery in mDNS Browser chrome extension