https://circuits4you.com/2017/12/31/esp8266-mdns/

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

什么是mDNS?

有关mDNS的更多信息,请阅读RFC6762

随着联网设备变得更小,更便携和更普遍,使用配置较少的基础设施进行操作的能力变得越来越重要。特别是,在没有传统的托管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();
}

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

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

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

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

重要说明: Android操作系统不支持mDNS。您必须在手机中使用IP地址。要解决此问题,请在网页中显示IP地址。这样你就可以在笔记本电脑上获得ESP8266的ip。

 

最新文章

  1. Log4j记录日志步骤
  2. 用vue.js学习es6(一):基本工具及配置
  3. ASP.NET MVC 5 - 查询Details和Delete方法
  4. HDU 4067 hdoj 4067 Random Maze 最小费用流
  5. Linux环境下SVN服务器端的安装与配置
  6. devexpress bandgridview使用总结(14.2)
  7. 设置UIButton或者UILabel显示文字的行数
  8. HDU 1846 Brave Game(巴什博弈)
  9. CAN基础知识
  10. python简单的爬虫,网页图片
  11. word2010表格中的内容怎么设置行距
  12. React Native中常见操作
  13. CF R303 div2 C. Woodcutters
  14. Eclipse生成Jar包方法
  15. 安迪的第一个字典(Andy&#39;s First Dictionary,UVa 10815)
  16. 如何为图片添加热点链接?(map + area)
  17. LeetCode算法题-Hamming Distance(Java实现)
  18. Microsoft .NET Core 1.0.0 VS 2015 Tooling Preview 2 Uninstall Failed
  19. c++实现循环队列
  20. python模块:re

热门文章

  1. 学linux,从Ubuntu开始
  2. HDU4609 3-idiots(生成函数)
  3. CF607B Zuma(区间dp)
  4. Android智能指针SP WP使用方法介绍
  5. springboot 学习之路 9 (项目启动后就执行特定方法)
  6. tab 切换实现方法
  7. [20190214]11g Query Result Cache RC Latches补充.txt
  8. windows下VMware-workstation中安装CentOS
  9. 大话C#之委托
  10. c/c++ const this指针