问题标签 [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 回答
119 浏览

hololens - HoloLens 设备门户的 DNS-SD

有人使用 DNS-SD 发现本地网络上存在 HoloLens 的设备门户吗?尽管文档声称它确实在宣传自己,但我发现这非常不稳定并且发现非常随机。它确实出现了一段时间,然后消失了几个小时。任何人都可以提出一种可靠的方法来检测我的本地网络上是否存在 HoloLens?

0 投票
0 回答
65 浏览

dns - 如果适配器上有很多 IP 地址,为什么“DNSServiceRegisterRecord”不返回引用?

我在我的路由器上注册了大约 80 个 ip 地址,创建了 udp 套接字,并希望为每个 ip 进行 Bonjour 注册。但是注册非常慢,或者在存在这么多 ips 的情况下失败。当 ips 达到 40 时,注册成功。我正在使用 pybonjour 库,操作系统是 windows10。

问题似乎出在 pybonjour 方法“DNSServiceCreateConnection”、“DNSServiceRegisterRecord”和“DNSServiceRegister”(对于 bonjour 注册以相同的顺序执行)。当在适配器上注册了这么多 ip 时,它们返回引用的速度非常慢。

没有错误消息出现,但它们也没有完成。有什么解决办法?

0 投票
1 回答
49 浏览

java - Android 在 Cordova 插件中使用自定义依赖项?

我正在使用这个 Cordova 插件进行 ZeroConf 集成: https ://github.com/becvert/cordova-plugin-zeroconf/tree/RxDNSSD

哪一个 Android Java 依赖项是 RxDNSSD。不幸的是,没有办法(我可以告诉)指定要使用的端口,所以我需要从源“构建”RxDNSSD 依赖项,所以我可以修改这一行: https ://github.com/andriydruk/RxDNSSD/blob/ bce8791516b6ee718cccab346066d55240d56194/dnssd/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.c#L60

改为使用端口5355

我怎样才能使它在构建 Android 部件时使用依赖项的自定义本地副本(列为import com.github.druk.dnssd.DNSSDBindable;): https ://github.com/becvert/cordova-plugin-zeroconf/blob/RxDNSSD/src /android/net/becvert/cordova/ZeroConf.java#L24-L27

它显示为com.github.druk.dnssd...这是否意味着它从 GitHub 中提取它?我可以以某种方式从自定义 github 存储库中提取它吗?

有一个zeroconf.gradle文件: https ://github.com/becvert/cordova-plugin-zeroconf/blob/RxDNSSD/src/android/zeroconf.gradle

但我似乎无法弄清楚我将如何去做……如果有人能帮助阐明如何做到这一点,我将永远感激不尽:)

0 投票
1 回答
121 浏览

netty - 如何在 ktor 中实现 dns-sd

我想向本地网络宣传所提供的服务。有没有集成 dns-sd 或 zeroconf/bonjour 的好方法?

0 投票
0 回答
95 浏览

c# - wifi断开/重新连接后服务发现死机

为什么断开 wifi 连接或使用飞行模式会中断服务发现,直到重新启动适配器或重新启动?

重新创建问题的步骤:

运行 Dns-sd -B "_services._dns-sd._udp.local。" ~返回所有服务

开启飞行模式

已删除发现的服务

关闭飞行模式

未重新添加的服务

关闭 cmd 提示符

打开新的 cmd 提示符

运行 Dns-sd -B "_services._dns-sd._udp.local。" ~ 不返回任何服务

重启 Bonjour 服务

运行 Dns-sd -B "_services._dns-sd._udp.local。" ~ 不返回任何服务

禁用 Wifi 适配器

启用 Wifi 适配器

在 Windows 10 上运行 Dns-sd -B "_services._dns-sd._udp.local。" ~返回所有服务

使用相同硬件的 win 8 也会出现问题。

代码为c#,系统使用dns-sd测试,测试过以下开源包:

zeroconf c# https://github.com/onovotny/Zeroconf ) ~ 同样的问题

Mono-zeroconf c# ( https://www.mono-project.com/archived/monozeroconf/ ) ~ 同样的问题

mdns 浏览器(https://chrome.google.com/webstore/detail/mdns-browser/kipighjpklofchgbdgclfaoccdlghidp)~有效,我不知道为什么。

在某些设置(路由器-适配器-操作系统)上,其他设置没有问题,只是无法通过连接/重新连接。

在失败的设置中,我找到了 1 个 USB wifi 适配器,大约 20 个。

其中一个不工作的适配器有一个名为 Radio on/off 的设备属性,如果我使用它而不是飞行模式,那么它确实可以工作。

为什么它不起作用,没有错误,警告或任何关键问题没有真正的一致性

0 投票
0 回答
127 浏览

c# - zeroconf获取txt记录

我正在使用这个nuget 包来发现网络上的服务。

我想知道是否可以从以下位置访问 txt 记录:

IReadOnlyList<IZeroconfHost> hosts = await ZeroconfResolver.ResolveAsync("_hid._udp.local.", scanTime);

我想获得该服务的更多信息(例如 devide id)。

谢谢你。

问候。

0 投票
1 回答
664 浏览

swift - 如何从 NWEndpoint.service 枚举案例中解析地址和端口信息(如果可能)

目前我正在使用NetServiceBrowser查找 Bonjour 服务并解析相应的地址和端口。

为了简化我偶然发现的代码,NWBrowser它似乎提供了一个非常简单的界面来处理 Bonjour 发现。

但是,browseResultsChangedHandler发送回包含 enum case 端点的结果和更改service。我正在尝试从结果中获取地址和端口信息,但似乎NWEndpoint必须是枚举类型.hostPort。

理想情况下,我会使用端点连接到服务器NWConnection,但是,我正在使用另一个不NWEndpoint直接处理的库。

是否有(简单的)方法可以从结果中获取地址和端口信息NWEndpoint.service

0 投票
1 回答
58 浏览

mdns - Windows 上的工业标准 UDP 广播?

我想使用 UDP boardcast 告诉这里的 lan 设备是 XX 设备。它与打印机的 mDNS/Zeroconf 场景相同。但是,据我所知,支持 zeroconf 的 Windows 很糟糕。在 Windows 上实现零配置的最简单方法是使用 Bonjour 库。但是,Bonjour 作为服务运行,它给最终用户带来了不友好。有人可以给我一些建议来实现这个目标吗?我可以选择什么协议?或者,是否有在 Windows(7 和 10)上运行的零配置库?广播和发现都在 Windows 上运行。谢谢你。

0 投票
1 回答
1662 浏览

routes - 将 mDNS 查询从 WSL 子网重新路由到 Windows 主机子网

嘿,程序员/开发人员/网络人员/Devops/...

我在 WSL2(Windows 10 2004 版本)上下文中的mDNS/设置有问题DNS-SD

我在家里有一个非常简单的设置,有一个主服务器和一个 Raspberry Pi,我想激活 DNS 服务发现,从而让我有一种简单的方法来自动发现我的 Raspberry PI 上的服务器。

使用dnssd 之类的简单库,甚至自己广播正确的数据,我设法使其在不使用 WSL2 时轻松工作。但是我需要让它在 WSL2 上工作,这就是事情变得复杂的地方。

由于 WSL2 在其自己的子网上运行,因此广播不再起作用。在子网上使用 mDNS 仅适用于该子网。但是,Windows 已经重新路由主机和 WSL 之间的一些广播流量。

这很容易测试:Ping从我的服务器到依赖于 mDNS 的 Pi 的 Avahi 地址做一个简单的工作。

在此处输入图像描述

在屏幕的左侧,您可以看到 Wireshark 在主机网络接口上捕获的流量,在右侧,您可以看到 Wireshark 在 WSL 网络接口上捕获的流量。前 3 行是一个简单的 ping :它是在 WSL 的上下文中执行的,但是这里出现的 IP 地址 - 172.28.192.1- 不是 WSL 客户端的 IP 地址,它是 WSL 内部 DNS 服务器的 IP 地址。如右图所示,它在主机上完美地重新路由,带有 windows 主机的 IP 地址:192.168.0.39

但是,由脚本执行的第二个查询具有 WSL 源 IP ( 172.28.204.42),并且此查询不会在主机上重新路由。

我的网络知识非常有限,我不明白这是如何工作的,以及如何让 WSL 在主机上路由我自己的 mDNS 查询。一个疯狂的猜测是它与 iptables 有关,但就我而言。

如果有人知道它为什么在 DNS 服务器源地址上工作而不是当我自己执行它时,它会对我有很大帮助!

编辑 1:WSL 路由表 在此处输入图像描述

0 投票
1 回答
638 浏览

java - 如何在 Windows 中将 SMB 添加为 Bonjour 服务

我的网络上有一台 Windows 10 机器充当文件服务器,该服务器的客户端之一是 Mac。例如,我知道在 Linux 中创建 Samba 共享还会创建一个 mDNS 条目,使其在 Finder 中对我的 Mac 机器立即可见。经过一些研究,我已经能够使用安装在 Windows 上的 Bonjour 通过 Bonjour 向 MacOS 宣传我的 SMB 共享。

通过使用以下命令在 CMD 中运行 dns-sd 命令:

dns-sd -R HOSTNAME _smb._tcp 本地 445

计算机/共享出现在 Finder 中。

这如何继续在 CMD 窗口中运行,这意味着我必须离开 CMD 窗口这样做才能继续通过 Bonjour 广播服务。该服务已注册但未附加或添加到任何内容,一旦您关闭该 CMD 窗口或 CTRL + C 服务将停止。

有没有办法让 Bonjour 在系统启动时广播这个服务?很难找到很多关于如何在 Windows 上执行此操作的文档。