首页
学习
活动
专区
圈层
工具
发布

内网发现,域名解析 mDNS(Arduino实现)

域名系统(英文:Domain Name System,缩写:

DNS)是互联网的一项服务。

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

DNS使用TCP和UDP端口53。

当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

代码语言:javascript
复制
#include<ESP8266WiFi.h>
#include<ESP8266WebServer.h>
#include<ESP8266mDNS.h>
const char *ssid="STM32L476";
const char *password="284122348";
ESP8266WebServer webServer(80);
const char mainPageString[]PROGMEM="<!DOCTYPE html>\r\n\
<html lang='en'>\r\n\
<head>\r\n\
<meta charset='UTF-8'>\r\n\
<title>Hello World</title>\r\n\
</head>\r\n\
<body>\r\n\
<H1>Hello ESP8266</H1>\r\n\
form mDNS example.\r\n\
</body>\r\n\
</html>";
void initWifi()
{
  WiFi.disconnect();
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid,password);
  Serial.println("");
  while(WiFi.status()!=WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
    }
    Serial.println("");
    Serial.print("Connect to ");
    Serial.println(ssid);
    Serial.print("IP Address: ");
    Serial.println(WiFi.localIP());
    
    }

    
void handleRoot(){
  webServer.send(200,"text/html",mainPageString);
  webServer.client().stop();
  }

void handleNotFound(){
  webServer.send(404,"text/html","404 File Not Found!");
  webServer.client().stop();
  
  
  }

void setup(){
Serial.begin(115200);
initWifi();
if(! MDNS.begin("esp8266")){
  Serial.println("Error setting up MDNS responder!");
  while(1){
    delay(1000);
    }
  }
Serial.println("mDNS responder started");
MDNS.addService("http","tcp",80);
webServer.on("/",HTTP_GET,handleRoot);
webServer.onNotFound(handleNotFound);
webServer.begin();
}

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

结果

欢迎关注我的公众号,喜欢就点一点 在看 吧。

下一篇
举报
领券