无法浏览esp8266中创建的mdns服务

Not able to browse the mdns service created in esp8266

我到现在所做的是

我在我的 nodemcu 中创建了 mdns 服务

    ... // code used to create the mdns service 

    if (mdns.begin("esp", WiFi.localIP()))
        Serial.println("MDNS responder started");

    server.begin();
    Serial.println("HTTP REST Server Started");

    MDNS.addService("http", "tcp", 80); 

   ...

Then I installed Bonjour in my windows . After that I am able to ping esp.local from my windows power shell and also I could communicate with the iot device from browser using the mdns name esp.local .

我现在正在努力解决的问题。

我在搜索 mdns 服务时无法发现此设备。 我在 windows powershell 中使用 dns-sd 来浏览我的服务,但它没有发现这个设备。

命令是dns-sd.exe -B <Type> <Domain> (Browse for services instances) 所以我尝试了

dns-sd -B _http._tcp local. //have doubt about this one .

它刚刚显示

Browsing for _http._tcp.local.

如果有人能帮助我,那就太好了。谢谢。

abhayastudios 找我帮忙。

您的代码中是否包含 ESP8266mDNS.h?

您始终可以尝试使用名为 fing 的 android 应用程序来发现所有 mdns 设备。 您是否检查了 windows 服务以查看 bonjour 打印服务是否 运行(或已安装)?有时 windows 会停止此服务。

如果有帮助请告诉我。

这些是我在 MacOS 上使用的命令,适用于我朋友的基于 ESP8266 的设备:

浏览 HTTP Bonjour 服务实例:

$ dns-sd -B _http._tcp .

解析 Bonjour 服务实例:

$ dns-sd -L <device name> _http._tcp .

MDNS.addService("http", "tcp", 80); 替换为 mdns.addService("http", "tcp", 80);

问题解决了。 mdns 是我的 MDNSResponder 对象实例。

对我来说,需要调用 MDNS.update() 内部循环函数才能使其工作。