问题标签 [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 投票
1 回答
4126 浏览

dns - 将“.local”子域重定向到单播 DNS

我定期访问已设置为使用.local顶级名称下的域的 Windows 域。这与保留.local供自己使用的 Bonjour/Zeroconf 冲突。许多平台开箱即用地支持 Bonjour(包括 Mac OS、iPhone 和 Ubuntu),并且在发生这种冲突时会出现许多名称解析问题。

我通过创建一个运行良好的/etc/resolver/ntdomain.localas perresolver(5)来为 Mac OS 提供手动(每个工作站)解决方法。不幸的是,这需要在每个工作站上进行手动更改,并且不适用于 iPhone。

我正在寻找一种将*.ntdomain.local通过 mDNS 进入的请求重定向到特定单播 DNS 服务器的方法。如果需要,我不介意编写一些代码。我可以部署在最好的 Debian 或 Windows 2003 上。看起来Avahi可能是我正在寻找的库。

这是否可以在不注册子域中的每个地址的情况下完成,或者是否可以注册ntdomain.local指向 Windows DNS 服务器的单个 NS 记录?

0 投票
3 回答
2088 浏览

firefox - ZeroConf extension that can be used in Firefox/XULRunner?

Is there a ZeroConf client extension for Firefox/XULRunner to be used in a zeroConf environment based on either mDNS or SLP?

I know of an extension already that's being developed by the ActiveState Open Komodo folks but it requires PyXPCOM support to be baked into the XULRunner runtime in order to access the Apple Bonjour libs for Windows. Is there anything else available?

0 投票
5 回答
13116 浏览

bonjour - 如何使用 mDNS 将所有子域路由到单个主机?

我有一个开发网络服务器托管为“myhost.local”,它是使用 Bonjour/mDNS 找到的。服务器正在运行 avahi-daemon。

网络服务器还想处理它自己的任何子域。例如“cat.myhost.local”、“dog.myhost.local”和“guppy.myhost.local”。

鉴于 myhost.local 位于 dhcp 的动态 IP 地址上,是否还有办法将子域的所有请求路由到 myhost.local?

我开始认为目前不可能...

http://marc.info/?l=freedesktop-avahi&m=119561596630960&w=2

您可以使用 /etc/avahi/hosts 文件执行此操作。或者,您可以
使用 avahi-publish-host-name。

不他不能。因为他想定义一个别名,而不是一个新的主机名。即他只想注册一个A RR,没有反向PTR RR。但是,如果您将某些内容粘贴到 /etc/avahi/hosts 中,那么它会同时注册两者,并在 PTR RR 不唯一时检测到冲突,这就是别名的情况。

0 投票
1 回答
2226 浏览

ubuntu-9.04 - 使用 Avahi 的 MDNS 子域

我有一台在 Ubuntu Jaunty 上运行 avahi-daemon 的机器。它目前正在响应 hostname.local 上的自身请求,但我希望它运行一个 webapp,最终为不在本地网络上的其他主机发布 MDNS 地址。如果可能的话,我希望它们位于 .local 的子域中。

现在,如果我编辑 /etc/avahi/hosts 文件并输入地址 -> 主机映射,它只有在没有子域组件的情况下才有效。换句话说,FQDN foo.bar.local 不会从其他主机解析,但 bar.local 会。这是 MDNS 客户端或服务器的限制吗?它可以修复吗?

0 投票
1 回答
591 浏览

iphone - 什么会导致 Bonjour 在浏览过程中不给我回电?

我在 App Store 中有一个相当流行的基于 Bonjour 的应用程序。它运行良好,但大约 0.2% 的用户报告了一个奇怪的错误:“屏幕边缘没有出现箭头,所以我无法与其他人分享内容!”。不用说,显示这些箭头与浏览本地域上的特定 Bonjour 服务有关。

问题是,苹果审核团队似乎间歇性地恰好在这 0.2% 之内。正如您可能想象的那样,这对审核结果不利。无论我如何尝试,我都无法重现此错误。

从我拥有的少数日志来看,我的应用程序运行正常,只是没有收到NSNetServiceBrowser委托调用。什么会导致这种情况?

我尝试过的事情:

  • 具有较短的服务名称 < 14 个字符的长度符合规范。
  • 发布@"local."而不是@""(又名去寻找默认注册域)。无论如何,我的应用程序在广域网上毫无用处。

我没有尝试过的事情:定期重新启动浏览器。(不过,我有两种浏览器,一种寻找旧的较长名称,一种寻找新的较短名称。)

该怎么办?

0 投票
2 回答
4574 浏览

security - 为什么 mDNS(Bonjour、Avahi 等)使用 UDP?

在我看来,DNS 的许多问题,尤其是安全问题,都是通过 UDP 实现 DNS 的根本原因;例如,响应者不必是他所说的那个人。

我不知道 mDNS 协议的细节(我认为它比 DNS 更新得多),也许它在应用程序级别处理了这些问题。任何人都可以为我阐明这一点吗?

0 投票
1 回答
673 浏览

linux - mdns:是否有 avahi-daemon 的 Web 服务接口?

我想通过HTTP查询avahi-daemon的mdns数据库。有没有办法做到这一点?

0 投票
1 回答
781 浏览

ruby - 在 Windows 上安装 dnssd gem

有没有人在 Windows 上成功构建了 dnssd gem?

尝试构建 c 扩展时出现以下错误:

如何完成“检查 htons”部分?

谢谢!

0 投票
0 回答
574 浏览

ruby - 如何使用 Ruby 的 net-mdns 广播主机名?

一般来说,我是 net-mdns 和 mDNS 的新手,所以我现在对协议的工作原理只有一个基本的了解,我希望这个问题是不言自明的。

到目前为止,我已经看到了一些如何使用 net-mdns 宣传服务的示例,但我真正需要的是广播主机名别名,以便我的机器可以解析为“mybox.local”和“othername.local” (如果“othername.local”是一个实际的 DNS 别名就好了,但这并不重要,一个 A 记录就可以了)。

我发现这个脚本基本上可以满足我的需求,但是

  • 我在 Python 中的流利程度不如在 Ruby 中的流利 ;-)
  • 它依赖于 avahi 并且只能在 Linux 或 BSD 上运行,而可移植到其他平台将是一个巨大的优势
  • 在 Ruby 中做这意味着很容易将它插入到 Rails 应用程序中,而且我碰巧对 Rails 非常流利。;-)

我似乎在文档中找不到任何关于广播主机名的提及:我即兴创作了一点,阅读了一些源代码,但到目前为止还没有成功。

任何帮助将不胜感激,谢谢。

0 投票
3 回答
1631 浏览

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

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

苹果网站说

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

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

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