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

c# - 是否有可用的纯 C# ZeroConf、bonjour 或 dns-sd?

我正在构建一个使用 Zeroconf 的 .net-microframework 应用程序。现有的 zeroconf 解决方案似乎都依赖 dns-sd.dll 或 .net 的其他一些互操作功能,而 .netmf 不支持这些功能。

你知道有没有纯 C# 版本的 zeroconf(或 dns-sd)?

0 投票
3 回答
1631 浏览

c - 使用 kDNSServiceFlagsShareConnection 共享 DNSServiceRef 会停止我的程序

我正在使用 Bonjour 的 dns-sd api 构建一个客户端。我注意到有一个名为 kDNSServiceFlagsShareConnection 的标志,它用于共享一个 DNSServiceRef 的连接。

苹果网站说

为了提高效率,执行许多并发操作的客户端可能希望将单个 Unix Domain Socket 连接与后台守护程序一起使用,而不是为每个独立操作使用单独的连接。要使用这种模式,客户端首先调用 DNSServiceCreateConnection(&MainRef) 来初始化主 DNSServiceRef。对于要共享同一连接的每个后续操作,客户端复制 MainRef,然后传递该副本的地址,设置 ShareConnection 标志以告诉库此 DNSServiceRef 不是典型的未初始化 DNSServiceRef;它是现有 DNSServiceRef 的副本,其连接信息应被重用。

甚至还有一个示例显示了如何使用该标志。我遇到的问题是,当我运行程序时,每当我调用带有标志的函数时,它就像在等待某些东西一样。这是代码:

有任何想法吗?想法?建议?

0 投票
1 回答
9458 浏览

iphone - 如何使用 Bonjour 跨子网宣传服务?

我熟悉 Bonjour 在“本地”域上的广告服务的使用。我已经完成了几个示例,并且我知道我为此使用的相应 Cocoa 类。

我很好奇我如何将简单的 Bonjour 服务宣传到不同的子网。具体来说,我正在尝试编写一个在通过以太网连接的桌面上运行的网络服务。客户端在通过 Wifi 连接的移动设备 (iPhone/iPad) 上运行。在我的网络设置中,Wifi 与以太网位于不同的子网中。但是,两者都在防火墙后面。我不需要在防火墙外做广告,我只是希望 wifi 客户端能够看到由以太网连接的服务器发布的服务。

这可能吗?我知道 Bonjour 应该支持跨子网的通信,但每当我尝试阅读此功能时,它都会深入研究 DNS 记录等。我是一名应用程序开发人员......我不知道这些东西,我也不希望用户担心它。我错过了一些简单的东西吗?

0 投票
1 回答
2843 浏览

windows - 如何从 Windows 查询 TXT 和 SRV 记录?

我正在尝试使用裸主机名(例如_service._proto)查询一组 SRV 记录,但是除非我还包括域名,否则这会失败。这很奇怪,因为其他工具(例如 nslookup)可以正常工作,并且使用相同的 API 调用来查询 A 记录也可以很好地处理裸主机名。

我当然可以查询系统以获取主域名,甚至可能是所有已配置的搜索域,但我很确定我不应该这样做。我几乎找不到对 Windows DNS API 的引用,所以我想知道是否有更好的方法来查询 TXT 和 SRV 记录。有没有人在 Windows 下有这方面的经验?

感谢您的任何建议,罗伯特

0 投票
2 回答
1177 浏览

linux - 是否可以分层收集 .local 域 IP 地址以构建基于 dhcp 的 dns?

假设你在正常的dhcp环境中,

你会得到一个像这样的IP地址:

  • 192.168.0.101 用于分段 A 上的 linuxpc1.localdomain
  • 192.168.1.102 用于分段 B 上的 linuxpc2.localdomain

我想通过仅在那些设置了主机名的 linuxpc 上安装 avahi 来查找它们。

于是在 192.168.2.103 linuxpc3.localdomain 上,运行

会工作。

实现这一点不影响 dhcp 服务器设置的最简单方法是什么?

或者,如果这很困难,至少我想知道从 linuxpc3.localdomain 主机运行脚本的名称的 IP 地址。

我不想设置 NIS 或 LDAP 或 SQL ...我认为重用解析 dhcped ip 地址的 avahi 功能是好的开始。

0 投票
1 回答
1002 浏览

c++ - avahi:广播我的服务已更新信息

我有一个 avahi (zeroconf, dnssd, bonjour) 服务。我希望服务能够在有新数据时通知客户端,以便客户端可以连接并查询更新的信息。

服务应该发布什么类型的消息,以及如何使用 avahi API 来完成(服务是用 C++ 编写的)?

0 投票
1 回答
1376 浏览

android - 使用 jmDNS 取消注册 zeroconf 服务

我试图让我的 Android 应用程序在应用程序处于活动状态时通过 zeroconf 注册服务,然后在应用程序退出后取消注册。在我的 onResume 方法中,我有以下代码:

然后在我的 onPause 方法中:

我已经删除了启用多播的代码等。关键是,我可以很好地注册服务,然后可以在另一台设备上使用 zeroconf 浏览器查看它。但是,一旦注册,该服务就永远不会消失,除非我真的禁用了注册该服务的设备上的 wifi。对 unregisterService 的调用似乎并不真正影响服务注册。unregisterAllServices 似乎也没有任何效果。有人有想法么?

0 投票
1 回答
1877 浏览

c - Avahi dns_sd 兼容层无法运行浏览回调

背景

我正在为 Haskell 开发一个跨平台的 Zeroconf/Bonjour/DNS-SD 库,并认为我最好的选择是针对dns_sd.hAPI。在 Linux 下,此接口的实现由Avahi提供,它声称支持 Bonjour API 的子集。

问题

作为对我的库的健全性检查,我用 C 语言编写了一个小型测试程序,它只使用了 API 的基本框架。它浏览网络上的任何类型的服务_http._tcp,一看到就打印一条消息,然后死掉:

在我的 Mac 上,这个测试程序在 C 和等效的 Haskell 中都能正常工作(它找到了我的打印机;令人兴奋!):

但是在我的 Linux 机器上,程序在没有调用回调的情况下退出了我:

问题

  1. Avahidns_sd兼容层仍然是跨平台绑定的合适目标吗?或者,关于使用本机 Avahi API 的警告消息是否足够严重,我应该考虑重新定位?
  2. C 中跨平台 Zeroconf 的最新技术是什么?
0 投票
2 回答
10390 浏览

bonjour - dns-sd:如何手动注册远程服务

我在另一个物理网络上的另一个远程系统上有一个服务,它的多播包没有到达我的本地系统,因此我看不到它的 DNS-SD 发布的服务。

我有一种方法可以在我的本地机器上手动注册它,以便只显示 DNS-SD 发现的服务的应用程序显示它?

0 投票
1 回答
767 浏览

ios - 引用 dns_sd.h 中的 DNSSDObjects 和 MonoTouch 中的 DNSServiceResolve

我想向 MonoTouch 中的项目添加对DNSSDObjects的引用 ,特别是 DNSServiceResolve 对象。

我想在 MonoTouch 项目中访问 DNSServiceResolve,但在任何地方都找不到该类。

那怎么办?