​

本教程介绍如何使用ESP8266进行多播DNS?在网络世界中,很难记住每个网站和计算机的IP地址,解决这个问题域名系统(DNS)用于制作人类可理解的名称。在ESP8266中使用ESP作为Web服务器时,很难记住ESP8266的IP地址,并且在DHCP模式下很难识别ESP的IP地址。即WiFi路由器为ESP8266分配IP地址。大多数ESP8266应用程序没有显示界面,并且不容易访问以了解其IP地址。为了克服这个问题,使用mDNS。

什么是mDNS?

 ​

随着联网设备变得更小,更便携和更普遍,使用配置较少的基础设施进行操作的能力变得越来越重要。特别是,在没有传统的托管DNS服务器的情况下查找DNS资源记录数据类型(包括但不限于主机名)的能力是有用的。

多播DNS(mDNS)提供在没有任何传统单播DNS服务器的情况下在本地链路上执行类似DNS的操作的能力。此外,多播DNS指定DNS名称空间的一部分可供本地使用,无需支付任何年费,也无需设置授权或以其他方式配置传统DNS服务器来回答这些名称。

多播DNS名称的主要优点是


  1. 它们几乎不需要管理或配置来设置它们,
  2. 它们在没有基础设施时工作,并且
  3. 它们在基础设施故障期间工

在ESP8266上使用本地网络中的mDNS

使用ESP8266的mDNS程序

该程序创建ESP8266 mDNS,名称为esp8266 MDNS.begin(“esp8266”)


/*  * Circuits4you.com  * mDNS example ESP8266 in Arduino IDE  * After connecting to WiFi router enter esp8266.local in web browser */ #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <ESP8266mDNS.h>  const char* wifiName = "circuits4you.com"; const char* wifiPass = "your_password";    ESP8266WebServer server(80);  //Handles http request  void handleRoot() {   digitalWrite(2, 0);   //Blinks on board led on page request    server.send(200, "text/plain", "hello from esp8266!");   digitalWrite(2, 1); }   // the setup function runs once when you press reset or power the board void setup() {      Serial.begin(115200);   delay(10);   // We start by connecting to a WiFi network   Serial.println();      Serial.print("Connecting to ");   Serial.println(wifiName);    WiFi.begin(wifiName, wifiPass);    while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(".");   }    Serial.println("");   Serial.println("WiFi connected");   Serial.println("IP address: ");   Serial.println(WiFi.localIP());   //You can get IP address assigned to ESP     if(WiFi.status() == WL_CONNECTED) //If WiFi connected to hot spot then start mDNS   {     if (MDNS.begin("esp8266")) {  //Start mDNS with name esp8266       Serial.println("MDNS started");     }   }    server.on("/", handleRoot);  //Associate handler function to path        server.begin();                           //Start server   Serial.println("HTTP server started"); }  // the loop function runs over and over again forever void loop() {   server.handleClient(); }


上传此程序后打开串口监视器,看看一切正常。

ESP8266 mDNS_android

然后打开Web浏览器并在地址栏中输入esp8266.local。确保您打开Web浏览器的esp和笔记本电脑(不是ANDROID PHONE)使用相同的WiFi网络。

DNS系统有www.xyzabc.com这样的名字。但是当你使用mDNS时,本地DNS系统没有任何DNS服ESP8266 mDNS_ip地址_02


务器。你必须在那个点(。)local之后输入域名。恩。esp8266.local