问题标签 [avahi]
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.
java - avahi 无法找到由 JmDNS 创建的服务
我正在从其他运行 windows-xp 的机器创建 JmDNS 服务
如果我运行其他将解析服务的客户端,则由JmDNS
它创建,无论机器如何。但如果我尝试通过avahi-browse
. 它找不到它。并给出以下输出。
android - 将 avahi 编译到 Android NDK 项目中的问题
在过去的几天里,我一直在尝试将 avahi 构建到静态或共享库中以与现有的 Android NDK 项目一起使用。
我们在 App and Play 商店中有一些游戏,我的任务是让多人游戏在 Android 版本中运行。具体来说,该任务涉及替换 Bonjour 组件,以便这些游戏可以通过 zeroconf 相互连接。
研究似乎表明 avahi 是我们正在寻找的库,但在这一点上,我对任何可行的方法都持开放态度!
我希望这里的某个人可以帮助我进行 avahi 编译或建议另一个更合适(且更易于安装)的库。
项目使用 android-ndk-r8b 并使用命令行(不是 eclipse)在 OSX 10.7.4 上构建
从这里获得最新的 Avahi 源: http ://www.linuxfromscratch.org/blfs/view/svn/basicnet/avahi.html
自制了所有必要的库,以使 ./configure 无错误地运行。
./configure 运行时没有明显的危险信号。
make 导致此编译错误:
认为它不是针对 android-ndk-r8b 库或查找 ipv6.h 或其他东西构建的。
检查了我的 .bash_profile.sh 文件:
将 --host=arm-linux-androideabi 添加到 ./configure 参数列表中,导致此错误:
无法弄清楚如何获取可用主机系统类型的列表,因此改变了方向,并决定尝试通过 Android.mk 文件构建静态库。
发现这篇关于创建适当的 Android.mk 文件的帖子: can't compile avahi on android
意识到我在所有子目录中都没有 Android.mk 文件。
研究、下载、构建了 Androgenizer 以尝试将所有 Makefile.am 文件转换为 Android.mk 文件。 http://cgit.collabora.com/git/user/derek/androgenizer.git/
无法弄清楚或找到有关如何做到这一点的信息=/
决定尝试创建我自己的 Android.mk 文件:
导致 avahi-core/iface-linux.c:33:0 的编译时错误:
现在我几乎被困住了。
我尝试#if 0'ing iface-linux.c 和 h 文件导致一系列其他错误,所以可能是个坏主意。
认为这可能是我使用 ./configure 命令做错了什么?也许我的 Android.mk 文件有问题?
我认为这一定是很多开发人员正在处理的事情,所以我可能遗漏了一些东西,因为我似乎无法通过谷歌找到任何好的信息。
任何帮助将非常感激!我也已将其发送到 avhi 邮件列表,如果我在那里得到回复,我将在此处发布以供后代使用。
谢谢,克里斯
bonjour - 多线程 avahi 解析导致段错误
我正在尝试将启用 zeronconf 的 C/C++ 应用程序移植到 Linux,但是我得到了与 D-BUS 相关的段错误。我不确定这是 Avahi 中的错误、我对 Avahi 的误用,还是我的代码中的错误。
我正在使用一个封装了 AvahiClient、AvahiSimplePoll 和 AvahiServiceResolver 的 ZeroconfResolver 对象。ZeroconfResolver 有一个 Resolve 函数,它首先实例化 AvahiSimplePoll,然后是 AvahiClient,最后是 AvahiServiceResolver。在每次实例化之前,我都会检查错误,然后再继续下一个。在成功创建 AvahiServiceResolver 后,它会使用 AvahiSimplePoll 调用 avahi_simple_poll_loop。
整个过程在同步完成时效果很好,但在同时异步使用多个 ZeroconfResolver 时会因段错误而失败(即,我有多个线程创建自己的 ZeroconfResolver 对象)。可以在下面的代码中看到重现段错误的对象的简单改编(可能不会立即产生段错误,但在我的用例中它经常发生)。
我了解“开箱即用”Avahi 不是线程安全的,但根据我对 [1] 的解释,只要不从超过一根线。每个 ZeroconfResolver 都有自己的一组 Avahi 对象,它们不会跨线程边界相互交互。
段错误发生在 Avahi 库中看似随机的函数中。通常,它们发生在引用 dbus 的 avahi_client_new 或 avahi_service_resolver_new 函数中。Avahi wiki 是否意味着暗示 AvahiClient/AvahiPoll 对象的“创建”也不是线程安全的?
avahi - 需要 mDNS 响应以使用子类型进行服务发现
我正在尝试基于子类型进行服务发现。
例如,我正在运行 avahi-publish -s --domain=local --subtype="_ann._sub._http._tcp" "serviceName" "_http._tcp" 5353 "text Record"。
现在我正在查询子类型 ex:AT+MDNSSD=_ann,_sub,_http,_tcp,local。
但是来自 avahi-publish 的响应不包含子类型。我收到名称为“serviceNaem._http._tcp.local”的响应消息。
任何人都可以告诉我如何使用 avahi-publish 注册服务,以便我可以在资源记录中获得“serviceName._ann._sub._http._tcp.local”的响应。
android - 在android上编译avahi时如何获取Android.mk,
我被分配了使用 android 补丁http://avahi.org/ticket/354将 avahi 核心编译为 android 的任务。使用补丁后,任何 Avahi 子目录(如 \avahi-core 等)中都没有 Android.mk 文件。我怎样才能得到它们。谢谢
python - 使用 python 浏览 avahi 服务会错过服务
我需要一个类,它为我提供当前可用的某种类型的 avahi 服务列表。因此,我gobject.MainLoop()
在一个单独的线程中运行一个(第 23-25 行),并为我感兴趣的每个服务添加一个浏览器(第 27,28 行)。这原则上有效。
我的问题是,我并不总是得到所有服务。有时列出所有可用的服务,有时没有列出,有时只列出几个。我的猜测是,浏览器在连接适当的信号(第 41-44 行)之前开始迭代服务(第 36 行),但我不知道如何解决这个问题。下面是一个显示失败的最小示例。
我在网上看到的大多数示例(例如:停止 Avahi 服务并返回元素列表)在设置浏览器并连接信号后运行 MainLoop。当收到“AllForNow”信号时,循环退出。这对我来说不是一个选项,因为浏览器应该继续运行并监听新的或删除的服务(顺便说一下,这很可靠,只是初始查询有问题)。
iphone - 如何在网络上检测 iPhone?
我正在尝试检测我的 iPhone 是否与我的 Raspberry Pi 在同一个网络中。当我在家并且我的 iPhone 的存在已在我的 LAN 中注册时,我想执行一个脚本。
似乎当手机处于待机状态时,甚至找不到 iphone-sync 端口(6207/tcp)。“/usr/bin/nmap -n -sT -p62078 [我手机的本地 IP]” 显示没有主机。我想知道我还能扫描什么。显然,手机已在线并准备好接受 facetime 通话(通过 3G 传输的数据已停用)。我可以用我在树莓派上使用的 avahi 完成一些事情吗,或者有其他方法吗?
bonjour - 在不知道 IP 的情况下连接到本地网络上的网站
我正在创建一个嵌入式设备(基于 RPi),它将连接到本地网络。我希望此设备能够通过网页配置设备(与许多路由器非常相似)。
我希望用户在 Web 浏览器中键入 [http://my-device-config](或其他一些固定地址)并被发送到配置页面,而无需知道设备的 IP 地址。
用户将采取的步骤如下:
- 用户将设备插入网络/打开设备。
- 用户在浏览器中输入“配置”地址并被带到配置页面。(无需网络配置/IP 查找等)
根据研究,我相信 Avahi (/Bonjour/Zeroconf) 可以使这成为可能,但我不清楚以下几点:
- Avahi 是最简单的方法吗?
- 如果我的设备是本地网络上运行 Avahi 的唯一设备,它会起作用吗?(即不需要在网络上的任何其他计算机上安装软件)。
- 它可以跨平台工作(osx/*nix/windows)吗?
- 它会跨浏览器工作吗?
感谢您的任何帮助/见解。
avahi - avahi 与一台多宿主主机隔离的 mDNS 域
我们正在尝试在我们的校园无线网络上启用许多 mDNS 广告服务,最显着的是 airplay。在我们的例子中,airServers 将位于我们的有线网络上,因此我们需要在无线端使用 DNS-SD 或 mDNS 手动通告服务。我们已经在 avahi 中使用静态服务广告来实现这一点,它非常流畅,但我们遇到了扩展问题。
我们在校园内的各种教室中可能有 150 台 AirServer 主机。如果我们要启用所有这些,那么在 iPad 上可供选择的列表将非常大(更不用说当教员忘记更改密码时,学生们非常喜欢从校园内接管 AirServer)。
我们想要做的是在每个建筑物的单个 vlan 上隔离我们的无线网络,以形成 27 个 mDNS 段,然后运行 avahi 以通告每个段中的服务,最好是在可以访问所有段的单个多宿主主机上.
我希望 avahi-daemon 会在 avahi-daemon.conf 中获取一个指向唯一服务目录的参数,这样我就可以拥有多个配置文件,每个配置文件都有不同的 allow-interfaces 子句和指向不同服务的指针目录,但这似乎不是一个可配置的选项。
我正在考虑 chroot 监禁多个 avahi 副本,但这似乎真的很笨拙。
我是否错过了一些更明显的策略来处理这个而不创建 27 个单独的主机?
非常感谢!
京东
dns - 转储 Avahi & Bonjour、DNS-SD 区域文件
我希望改进 mDNS 的 Go 库:https ://github.com/davecheney/mdns/
我和作者谈过,他只是说“我把它弄到了对我有用的地步”,这很好,完全符合开源精神。
他提到了 Avahi、Bonjour 和 dns-sd 发现工具无法找到他导出的服务的一些互操作性问题。
我希望了解 Avahi 在使用端口和简单名称进行简单服务时发布的记录。
我曾期望一个合适的版本:
可能有 Avahi 导出它的区域,但它对我不起作用(提示“你做错了”!) - 我想了解典型 Avahi 服务导出的最少记录,并从自动检查相同从我笔记本上的 Apple 实现中导出Lee-Hambleys-Macbook.local
,我可能能够改进对 mDNS 的 Go lang 支持。
当其他人使用 Avahi/Bonjour/mDNS 时,他们使用什么工具来挖掘并检查事情是否按预期工作?
#avahi 的好心人很友好地给了我以下提示:
这会导致avahi-daemon
将其区域文件转储到syslog
.
但理想情况下,我想知道如何最好地查询服务器,tcpdump
看起来也很有希望,但它仍然只显示被查找的记录,而不是区域中所有内容的完整转储: