问题标签 [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.
hololens - HoloLens 设备门户的 DNS-SD
有人使用 DNS-SD 发现本地网络上存在 HoloLens 的设备门户吗?尽管文档声称它确实在宣传自己,但我发现这非常不稳定并且发现非常随机。它确实出现了一段时间,然后消失了几个小时。任何人都可以提出一种可靠的方法来检测我的本地网络上是否存在 HoloLens?
dns - 如果适配器上有很多 IP 地址,为什么“DNSServiceRegisterRecord”不返回引用?
我在我的路由器上注册了大约 80 个 ip 地址,创建了 udp 套接字,并希望为每个 ip 进行 Bonjour 注册。但是注册非常慢,或者在存在这么多 ips 的情况下失败。当 ips 达到 40 时,注册成功。我正在使用 pybonjour 库,操作系统是 windows10。
问题似乎出在 pybonjour 方法“DNSServiceCreateConnection”、“DNSServiceRegisterRecord”和“DNSServiceRegister”(对于 bonjour 注册以相同的顺序执行)。当在适配器上注册了这么多 ip 时,它们返回引用的速度非常慢。
没有错误消息出现,但它们也没有完成。有什么解决办法?
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
但我似乎无法弄清楚我将如何去做……如果有人能帮助阐明如何做到这一点,我将永远感激不尽:)
netty - 如何在 ktor 中实现 dns-sd
我想向本地网络宣传所提供的服务。有没有集成 dns-sd 或 zeroconf/bonjour 的好方法?
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 的设备属性,如果我使用它而不是飞行模式,那么它确实可以工作。
为什么它不起作用,没有错误,警告或任何关键问题没有真正的一致性
c# - zeroconf获取txt记录
我正在使用这个nuget 包来发现网络上的服务。
我想知道是否可以从以下位置访问 txt 记录:
IReadOnlyList<IZeroconfHost> hosts = await ZeroconfResolver.ResolveAsync("_hid._udp.local.", scanTime);
我想获得该服务的更多信息(例如 devide id)。
谢谢你。
问候。
swift - 如何从 NWEndpoint.service 枚举案例中解析地址和端口信息(如果可能)
目前我正在使用NetServiceBrowser
查找 Bonjour 服务并解析相应的地址和端口。
为了简化我偶然发现的代码,NWBrowser
它似乎提供了一个非常简单的界面来处理 Bonjour 发现。
但是,browseResultsChangedHandler
发送回包含 enum case 端点的结果和更改service
。我正在尝试从结果中获取地址和端口信息,但似乎NWEndpoint
必须是枚举类型.hostPort。
理想情况下,我会使用端点连接到服务器NWConnection
,但是,我正在使用另一个不NWEndpoint
直接处理的库。
是否有(简单的)方法可以从结果中获取地址和端口信息NWEndpoint.service
?
mdns - Windows 上的工业标准 UDP 广播?
我想使用 UDP boardcast 告诉这里的 lan 设备是 XX 设备。它与打印机的 mDNS/Zeroconf 场景相同。但是,据我所知,支持 zeroconf 的 Windows 很糟糕。在 Windows 上实现零配置的最简单方法是使用 Bonjour 库。但是,Bonjour 作为服务运行,它给最终用户带来了不友好。有人可以给我一些建议来实现这个目标吗?我可以选择什么协议?或者,是否有在 Windows(7 和 10)上运行的零配置库?广播和发现都在 Windows 上运行。谢谢你。
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 服务器源地址上工作而不是当我自己执行它时,它会对我有很大帮助!
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 上执行此操作的文档。