问题标签 [mdns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10064 浏览

linux - Could I use avahi to publish service across subnetworks?

Avahi is usually used for service discovery. I want to make a service discoverable from a different subnetwork, could I use avahi to achieve this?

For example, the service host ip is "192.168.1.100" with mask "255.255.255.0", so it's in 192.168.1.X subnetwork. Another host ip is "192.168.2.100" with mask "255.255.255.0". Could I use avahi to let this host discover the previous service host?

0 投票
0 回答
1374 浏览

c# - 有没有办法检测 Windows Phone 本地网络中的 bonjour/mdns/zeroconf/任何服务

在 WPF 应用程序中,我可以添加对Bonjour 1.0因此我能够检测本地网络中的 bonjour 服务的引用。在 Windows Phone 应用程序中,我看不到对 Bonjour 的引用。如何处理?

我的问题是我想在 Windows Phone 手机可以检测到(ip 和端口)的 PC 上创建/广播服务。两者(PC 和 Cell)都在同一个本地网络(一个路由器)中。

0 投票
1 回答
12616 浏览

android - Android NSD(网络服务发现)是否与 iOS 中的 Bonjour 服务兼容?

我将为 iOS 和 Android 创建一个无服务器的本地网络应用程序。iOS 和 Android 设备中的应用程序应该相互发现并相互交谈。

我知道有平台内置服务(从 v4.1 开始是 iOS 中的 Bonjour 和 Android 中的 NSD),此外,还可以使用开箱即用的开源jmdns包。

我不知道如何选择,它们的兼容性如何。

我的问题是:

  1. Android NSD(网络服务发现)是否与 iOS 中的 Bonjour 兼容?我应该在我的应用程序中使用什么来进行服务发现。
  2. 如果我还为应用程序开发 PC 版本,是否需要使用第三方库?
0 投票
1 回答
1312 浏览

windows - 如何在没有 -remove 命令的情况下在 Windows 中刷新 mDNSResponder.exe

我有一个使用 mDNSResponder.exe 制作的客户端应用程序。mDNSResponder 在某些封闭的网络环境中,对从某些服务器硬件(如 DVR 或 ip-camera)的状态接收到的客户端程序的数据进行实时更新。

我只是尝试创建一种新方法,在使用 TCP 等其他通信协议从客户端更新状态后,客户端使用 mDNSResponder.exe 更新从服务器硬件接收到的状态。但是我遇到了一个问题,即 mDNSResponder.exe 无法使用另一个通信协议更新进程的反射状态。如我所见,mDNSResponder.exe 在更新时间和显示先前状态之间的间隔中存储了一些接收到的状态,而不是当前状态。

在这种情况下,“-remove”和“-install”命令没有帮助,因为其他应用程序也使用 mDNSResponder.exe。此操作将损害其他应用程序。

因此,在 Windows 操作系统(XP、7、8)中,我想在没有 -remove 命令的情况下找到重置(或刷新)mDNSResponder.exe。

0 投票
2 回答
420 浏览

android - 在android中使用NSD api注册服务时如何添加TXT记录?

我正在尝试在 android 中使用 NSD api 注册服务,但我不确定如何添加 TXT 记录?

0 投票
1 回答
2589 浏览

node.js - 为什么 Node.js UDP 客户端收不到消息?

我正在尝试在 Node.js 中编写多播 DNS 客户端。

目标是显示我正在运行的相同逻辑输出:

这是引擎盖下的 UDP 数据包:

所以我写了这个:

运行此脚本时,它会输出:

并且 tcpdump 输出同样的东西:

所以看起来它正确地发送与 dns-sd 相同的数据包,并接收相同的东西,但脚本的message事件处理程序没有触发。为什么?如何解决这个问题并输出收到的数据包?

我在 MacOSX10.9,Node.js 0.10.25

0 投票
1 回答
778 浏览

linux - mDNS 服务器应该如何处理反向 mDNS 请求?

首先,一些背景知识:avahid 在我的嵌入式 Linux 设备上引起了我的问题(它有崩溃的错误,看起来不会很快修复)并且我只需要最少的 mDNS 功能(即足够让某人在 Mac或者 PC 可以执行“ping6 mydevicename.local。”并将该主机名解析到我的设备),所以我编写了自己的极简 mDNS 服务器(在 C 中),它基本上只监听多播 DNS 数据包并用必要的 mDNS 响应它们记录。

这主要是有效的——特别是,从 Mac 上进行上述 ping6 测试可以立即解决并且效果很好。

然而,我注意到,如果我从 Linux 机器上执行 ping6,它只能工作。尤其:

  • Linux 客户端大约需要 4 秒来解析主机名
  • 这 4 秒延迟发生在每个发送的 ping 数据包中……也就是说,ping6 程序不是每秒发送一个 ping,而是每 4 秒发送一个 ping。(虽然它确实得到了预期的乒乓球)
  • 当我在嵌入式 Linux 设备上运行 avahid 时没有出现此问题,因此我认为该行为一定是由我的新 mDNS 服务器正在执行的不正确操作引起的。
  • 发生这种情况时,我的 mDNS 服务器会从客户端获取反向 mDNS 数据包,如下调试输出所示:

[…]

所以我的问题是:

  • 每次程序尝试使用我的 mDNS 服务器解析 mDNS 主机名时,什么会导致 Linux mDNS 主机名解析客户端软件(NSS-resolver?)有四秒的延迟?

  • 响应上述 mDNS 请求的适当方式是什么?我查看了 mDNS 和 DNS 规范,但找不到任何明确的要求。我尝试让它响应通常的信息(主机名、IP 地址等),但这并没有使延迟消失。

  • 还有什么我可能做错了吗?(除了尝试推出我自己的 mDNS 服务器——但相信我,如果我觉得有更好的选择,我不会这样做;avahid 只是没有减少芥末)

0 投票
6 回答
84474 浏览

mdns - Windows 上的标准 mDNS 服务

Windows(一些现代风格)是否默认安装和/或运行 mDNS 服务器?如果是这样,那么如何告诉它(最好是动态地)开始/停止广告一项新服务?

如果没有标准,那么如何处理尝试在该环境中运行多个 mDNS 服务器的冲突问题?

基本上,我想实现一个可以在 Linux、Windows 和 Mac OS X 上运行的服务,并且需要使用 mDNS 来通告其 zeroconf 网络服务器的位置。在 Linux 上,我只使用 avahi-publish(或安装配置文件)。我猜答案对于 OS X 来说是直截了当的。我正在努力寻找适用于 Windows 的信息。

0 投票
2 回答
8035 浏览

android - Android - jmdns 没有发现设备

我正在尝试实现一个类来发现网络上的服务。我尝试过使用Android 的 NSD,它确实发现服务很好,但它只支持 API 级别 16 及更高级别,而且我似乎无法检索服务信息中的 txtRecord 字段(由于某种原因它返回 null)。原来这是一个已知问题...

所以现在我正在尝试使用jmDNS,它似乎根本找不到服务。这是我的课程(我正在使用 AndroidAnnotations 框架)MDnsHelper:

在我的应用程序中,我调用:

然后startDiscovery();开始扫描和stopDiscovery();停止扫描。

当然,我在清单中给了应用程序所需的权限......我在这里错过了什么?如果您需要我提供其他代码/信息 - 请询问。谢谢!!

0 投票
1 回答
1372 浏览

ios - 使用 Objective C 套接字发送 MDNS 请求

我有一台 iPad,它不会“看到”网络上的 bonjour 设备。所以我想发送一个 UDP MDNS 数据包,以便网络为 IP 提供网络上最新的设备,以便我可以在 iPad 上执行镜像。我能够创建一个套接字,但我发送的数据不正确。有任何想法吗?