Skip to content

ESP8266 使用 mDNS

1. 什么是 mDNS

mDNS 可以在没有 DNS 服务器的情况下在内网就可以访问域名。域名的后缀必须是 .local,而且需要设备支持 mDNS 才可以。Android 和 iOS 大部分不支持,PC 端大多支持。

关于 mDNS 的详细信息可阅读我的 mDNS 笔记

2. ESP8266 开启 mDNS

安装 ESP8266 库后就包含了 mDNS 库,所以可以直接使用。

可参考 示例代码

cpp
// 引入 mDNS 库
#include <ESP8266mDNS.h>

void setup() {
    // 连接 WiFi 后开启 mDNS 服务
    if (WiFi.status() == WL_CONNECTED) {
        // 使用后将可以通过 http://dht22-esp8266.local/ 访问
        if (MDNS.begin("dht22-esp8266")) {
            Serial.println("MDNS started");
            MDNS.addService("http", "tcp", 80);
        } else {
            Serial.println("MDNS failed");
        }
    }
}

void loop() {
    // 每次循环时都进行更新
    MDNS.update();
    server.handleClient();
}

配置后可以通过 http://dht22-esp8266.local/ 来访问 ESP8266 提供的服务。