ESP8266 – DNSServer库 – start

位置导航: ESP8266库 / DNSServer库 / 本页

说明

当ESP8266模块以无线终端模式工作时,调用本函数可以启动ESP8266模块的DNS服务。

语法

dnsServer.start(port, domainName, domainIp)

参数

port: DNS服务端口号。默认情况下设置为53(uint16_t型)

domainName: 映射的域名,也就是开启服务后可以直接访问的用于代替IP地址的域名(可使用字符串型)

domainIp: 映射的IP地址(IPAdress型)

返回值

返回值为是否成功开启DNS服务,若开启则返回true。数据类型为布尔型

示例程序

关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。

示例程序操作说明
当您将以下程序编译并且上传给ESP8266开发板以后,接下来您可以使用手机连接ESP8266开发板所建立的WiFi网络。该WiFi网络名称是DNSServer example(连接此网络无需密码)。

ESP8266-DNS-Example-1
ESP8266-DNS-Example-1

请打开手机的浏览器,并且在浏览器地址栏中输入“www.example.com”。

ESP8266-DNS-Example-2
ESP8266-DNS-Example-2

输入地址后,再按下确认键。浏览器将会打开下图所示的页面。该页面正是由ESP8266开发板所建立的。

接下来,我将对此示例程序的基本工作流程给您做一个简单的介绍。请留意,在以下示例程序的控制下,ESP8266服务器将会扮演两个角色。第一个角色是DNS服务器,也就是本页面所要讲解的重点。第二个是网络服务器,也就是响应客户端的HTTP访问请求。

在以下示例程序中,我们使用了dnsServer.start(DNS_PORT, "www.example.com", apIP)启动了DNS服务。当我们通过浏览器输入了www.example.com这一网址信息并按下确认键后,浏览器将会向ESP8266所建立的DNS服务器发送DNS服务请求。

ESP8266服务器在收到此请求后,将会通过服务器内的检索信息获取到www.example.com这一网址所对应的IP地址正是ESP8266服务器的IP地址。于是ESP8266DNS服务器将会把这一检索结果响应给浏览器。

浏览器得到了DNS服务器响应,也就是www.example.com网址所对应的IP正是ESP8266服务器的IP,于是浏览器将会再次向ESP8266的IP地址发送HTTP请求。

当ESP8266接收到浏览器客户端的HTTP访问请求后,ESP8266的网页服务器功能将会生成HTTP响应信息,并且返回给手机浏览器客户端。浏览器于是便显示出以下图片所显示的信息内容。

ESP8266-DNS-Example-2
ESP8266-DNS-Example-3

相关内容

stop – 停止DNS服务
processNextRequest – 处理DNS请求
setErrorReplyCode – 设置错误响应码
setTTL – 设置TTL

位置导航: ESP8266库 / DNSServer库 / 本页