问题标签 [dns-sd]

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 投票
1 回答
324 浏览

objective-c - 使用 DNSServiceQueryRecord 对 kDNSServiceType_MX 进行 DNS 查询,返回一项

我正在DNSServiceQueryRecord使用kDNSServiceType_MX以下内容:

并调用了回调,但只有一个条目:

所以这只返回一个条目。如何获取 MX 列表?我究竟做错了什么?提前致谢!

0 投票
1 回答
429 浏览

swift - 如何在 swift 中进行 CNAME 记录查找

我在网上找到了一些示例代码,我试图用它来进行 CNAME 记录查找(注意我传递了一个callback我想要运行的块):

问题是这段代码被阻塞了,DNSServiceProcessResult(serviceRef.pointee)并且callback永远不会被调用。根据 Apple 的DNSServiceProcessResult文档,我需要

DNSServiceRefSockFD与运行循环或 select() 结合使用,以确定是否存在来自服务器的响应,然后再调用此函数以处理响应而不阻塞。

所以我看了看,DNSServiceRefSockFD发现我可以dnssd_sock_tDNSServiceRefSockFD(serviceRef.pointee). 但是现在我有了套接字,我不确定如何“将它与运行循环一起使用”作为运行循环的事件源(根据DNSServiceRefSockFD文档)。

我只是不明白这是如何工作的。我不明白如何将其dnsssd_sock_t用作运行循环的事件源,以便我可以DNSServiceProcessResult在正确的时间调用而不会阻塞,以便我callback真正运行。

如果最好将套接字用作 kqueue 事件源或在 select() 循环中(如文档所述),我很好,但我也不知道该怎么做。

CoreFoundation 可能非常神秘,因此非常感谢任何帮助!

如果有更好的方法来进行 CNAME 记录查找,那么请务必分享!

0 投票
0 回答
917 浏览

android - Android NSD - 永远挂起/运行 - 特定于设备?

我正在尝试在我公司的专有硬件设备上执行服务发现,该设备托管自己的 WiFi 网络并通过该网络宣传 bonjour 服务。当我连接到那个 WiFi 网络时,我正在使用 NSD 来发现该服务并解决它。

代码非常简单,通常运行良好且快速。除了我有一个相当反复出现的问题(大约 10 次尝试中的 5 次)到目前为止本地化到我的三星 S8+。目前无法在 S6 或 Pixel XL 上重现。

问题是 DiscoveryListener 除了 onDiscoveryStarted() 之外从不做任何事情,它只是永远运行。如果我杀死该应用程序并重新开始,有时它会工作,有时它会继续挂起。

就像有一个阻塞的线程或其他东西,但日志中没有有用的信息(我可以找到),而且我还没有找到任何东西可以锁定,因为我可以做些什么来从中恢复。

我添加了一个超时,它将在 30 秒后停止侦听器,但通常当我在那之后重试时它仍然不起作用。

服务发现过程包含在一个 LiveData 中,它在活动时启动它。

听众很简单...

我无法在日志中找到太多有价值的东西,尽管当事情不工作时我确实看到了这条消息。试图寻找有关这个问题的答案的尝试并没有取得成果。

04-26 13:50:14.541 953-1218/? W//system/bin/netd:使用无效的 DNSServiceRef 0x72bb818000 FFFFFFFF DDDDDDDD 调用 dnssd_clientstub DNSServiceProcessResult

我还能提供哪些其他信息?

我已经在我的 S8+ 上使用 Andriy Druk 的 bonjour服务浏览器示例代码重现了这个问题,它甚至不使用 NSD ......所以看起来问题可能出在核心 mDNS 代码中,而不是特定于 Google 的 NSD 实现?

S8+ 上是否有一些系统软件或膨胀软件可能会干扰我对 NSD 或 mDNS 的使用 - 线程阻塞或其他什么?

0 投票
4 回答
6460 浏览

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

我到目前为止所做的是

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

然后我在我的 windows 中安装了 Bonjour。之后,我可以 ping esp.local从我的 windows power shell 中使用 mdns 名称从浏览器与 iot 设备进行通信 esp.local

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

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

命令是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.

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

0 投票
1 回答
794 浏览

c# - 用 `ServiceDiscovery.Dnssd` 做广告,用 Bonjour 发现?

Windows.Networking.ServiceDiscovery.Dnssd命名空间是否允许广告可通过 Apple 的 Bonjour 发现的服务?

Microsoft 的文档提到了所有正确的 DNS-SD RFC,但我无法使用此Bonjour Browser 程序发现我的程序。我知道 Bonjour Browser 程序正在运行,因为它会发现我网络上的其他设备以及通过mDNSResponder. 微软关于这个命名空间的文档非常模糊,让我感到疑惑。

这段代码中有什么明显错误的地方吗?

示例输出:

0 投票
0 回答
265 浏览

windows - 在 Windows 中运行 Avahi Docker linux 容器

我想为 DNS-sd 客户端制作一个跨平台的解决方案。我选择在 Linux 中使用 Avahi,然后可能在 Windows 的 docker 容器中使用(出于某种原因,像 Bonjour 这样的解决方案不适合我的目的。由于 Avahi 需要在 Linux 中调用 D-bus,我想知道是否有人知道如何在 windows 中使用 docker 容器解决这个问题,这样人们就可以在使用 docker Container 的 windows 中使用 Avahi。

谢谢你。

0 投票
0 回答
301 浏览

bonjour - 我正在尝试为 _universal._sub._ipp.tcp.local 生成 dns-sd 查询,有没有办法请求子查询

我正在尝试生成 dns-sd 查询_universal._sub._ipp.tcp.local,有没有办法请求子查询。

但是,有对上述请求的回应。

有没有办法为子类型发送查询。

0 投票
0 回答
357 浏览

c++ - Windows.Devices.Enumeration DeviceWatcher 找不到具有多个网卡的所有服务

我在使用带有 C++/WinRT 的 DN-SD 的 Windows.Devices.Enumeration 及其 DeviceWatcher 时遇到问题。我的机器中有 2 个网卡,并且只能找到通过第一张网卡连接的机器上的那些服务。

这发生在我自己的测试程序中以及当我在 Microsoft 的“Windows 通用示例”中扩展 DeviceEnumeration 示例程序以包含 DNS-SD 时,例如添加到 Samples/DeviceEnumerationAndPairing/cpp/DisplayHelpers.h 中的 DeviceSelectorChoices

并到 Samples/DeviceEnumerationAndPairing/cpp/DisplayHelpers.cpp 插入

到 Samples/DeviceEnumerationAndPairing/cpp/DisplayHelpers.cpp 并更新方法:

然后编译并运行并从设备观察程序中选择 DNS-SD - 它只会在与第一个网络接口的子网连接的机器上找到服务,即使它在第二个网络接口的子网上有连接也是如此。但它没有列出仅在第二个网络上的机器上运行的任何服务。

使用 dns-sd 命令行工具查找两个网络上的所有广告服务:

我在 AQSFilter 上尝试了许多变体,认为它可能不会默认使用两个网络接口 - 例如使用 System.Devices.Dnssd.NetworkAdapterId - 但没有乐趣。

我想它也有可能在 Windows 中低于设备枚举 API ..?

0 投票
1 回答
7394 浏览

networking - 如何在 Windows 或 Linux 上安装 dns-sd 命令行测试工具?

Stuart Cheshire 和 Daniel H. Steinberg 于 2005 年出版的《零配置网络 - 权威指南》一书描述了一个dns-sd命令行测试工具,它应该可用于 macOS、Windows 和 Linux。在第 6 章(第 92 页)的开头,他描述了该工具,但这并不是关于如何下载和安装它的明确指南,只是可以从 Darwin 开源存储库中获得。

该工具提供了诸如dns-sd -B浏览服务实例之类的命令。

我是 Windows 和 Linux 用户,但找不到该工具。Bonjour 已经安装在我的 Windows 系统上,但我不清楚这是否足够,或者我是否需要明确下载该工具。当我dns-sd在 windows 命令行上键入时,它说这个命令是未知的。如何使其可用?

0 投票
0 回答
717 浏览

linux - 如何在centos linux中创建DNS-SD自定义主机名,以便我们可以通过dotnetcore中的zeroconf解析器发现它

我需要通过主机名获取 zeroconf 设备的 ipaddress。它在 Windows 中完美运行,但在 linux 中出现以下错误

这是 Windows 代码,但它不适用于 avahi 的 Linux

这是Linux错误。

所以我不明白如何从这里开始。我在 dotnet core 中使用了 zeroconf