问题标签 [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.
linux - 多个 IP 地址上的 Avahi DNS-SD
背景:
我正在尝试在不需要 DHCP 服务器的情况下与 IP 摄像机通信。这是摄像机获取 IP 地址的方式:
- 基本 DHCP 程序(发现等)
- 如果上述方法失败,则相机的后备地址为192.168.0.90
- 然后,相机启动 avahi-daemon 并成功获取链接本地地址以实现稳健性
- IP 别名现已完成,接口有两个 IP。
问题:
现在的问题是,当我通过 avahi-browse浏览网络上的服务时,相机会回复两个 IP 地址(使用 Wireshark 检查)。
avahi 只显示一个,它可能是 zeroconf:ed 地址或备用地址。
我只想要链接本地地址,而不是后备。有什么靠谱的获取方式吗?
android - Wifi P2P 服务发现间歇性工作
Wifi P2P 服务发现未按预期运行。我看到不总是调用 DNSSD 侦听器的间歇性问题,因此我不知道附近设备运行相同的应用程序。我正在使用以下两个 API - 一个用于注册要被其他设备发现的服务,另一个用于发现在其他设备上运行的附近服务。知道我在这里做错了什么,或者在我调用这些 API 之前是否需要进行一些特定的其他 android API 调用序列,以确保在注册新服务时始终调用侦听器,或者即使服务在我们调用 API 发现本地服务之前注册。
注册本地服务的 API:
用于发现本地服务的 API:
注意:manager & channel 初始化为
zeromq - 自动发现 ZMQ 代理
我有以下问题:
云中有一组基于 ZMQ 的代理。这些将在 Amazon VPC 中运行,使用特定的 IP 范围。
还有客户端应用程序,这些应用程序在所有主机上运行,并且可以位于世界任何地方。
我希望这些客户自动发现可用的经纪人。:
...当这个客户端启动时,它应该获取上面的代理 IP 列表。
我的问题是最好的方法是什么?
当然,客户端可以使用蛮力方法,尝试连接到范围内的所有 IP,但这不是一个好的或有效的解决方案。
我猜,VPC 可以支持多播(通过 n2n),在这种情况下,客户端将发送多播消息,可用的代理将使用发送方 IP“回复”该消息,这始终是多播数据的一部分(就我知道)。
但是没有更好的方法来做到这一点吗?我需要客户端自动发现,因为这必须是一个零配置系统。
我知道可以使用多播/广播或 bonjure/zeroconf 之类的东西在 LAN 上轻松完成发现。但是客户端不是我网络的一部分,它们可以位于任何地方。
提前致谢!
编辑:
我知道这也可以通过其他方式解决,例如添加“配置服务器”来存储有关可用代理的信息,但我更喜欢分散的解决方案。
编辑2:
看来 DNS-SD 可用于此目的,因为支持广域发现。如我所见,我甚至可以手动将一些特殊的 DNS 条目添加到我的 DNS 服务器。
客户端只需要知道其 DNS 记录存储广告服务数据的域名。
我想,客户端需要集成 bonjur / avahi 库或其他一些 DNS-SD 实现来执行这些查询,对吧?avahi,最好的免费图书馆是什么?
zeroconf - 通过 bonjur / avahi 发现广域服务
我正在研究广域服务发现和 bonjur / avahi 似乎真的很好。但是,我对这一切如何运作感到有些困惑?
所以:
我有一堆在云中运行的服务。
我的客户可以位于世界任何地方。
我希望客户端自动发现云中的服务。
我需要客户端绝对零配置,所以他们不知道 IP、端口,什么都没有。
如果我理解正确,这可以使用上面提到的 dns-sd 库来完成。我可以完全访问 DNS 服务器,所以我想,这些服务可以在启动时使用这些库进行注册,然后数据可以通过全球的 DNS 服务器传播。
客户可以通过使用 bonjur / avahi 技术查询我的域的 DNS 记录来获取广告信息,对吗?
我需要做的就是将客户端与 bonjur / avahi 库链接,并告诉它应该使用哪个域(查询)。它是否正确?
我在这里遗漏了什么还是它是如何工作的?
提前致谢!
java - DNS-SD:使用“mdnsjava”的经验?
我现在正在将 DNS-DS 库“ mdnsjava ”实现到我的 Android 项目中,因为它在多个位置都提到过,例如在 SO:
除了 JMDNS,还有其他用于 bonjour/zeroconf 的 Java 库吗?.
在实现时,我想知道这个实现是否真的使用了任何缓存和/或它的性能有多稳定。
现在我在过去 2 年里一直在使用 jmDNS,但是这个库在暂停发现(后台应用程序)时无法保留缓存。
此外,jmDNS 在发现设备时速度慢且不稳定。
那么,有人对mdnsjava有任何经验吗?
android - 未调用 Android P2P 服务发现回调
我对 Android 还很陌生,我正在开发一个可以通过 WIFI 直接交换数据的应用程序,我想使用 DNS 服务发现而不是纯 P2P 发现来获取更多有用的信息,例如设备“昵称”等。
到目前为止,我已经按照http://developer.android.com/training/connect-devices-wireless/index.html上的教程阅读并通读了文档。
我的应用程序似乎成功注册了它的本地服务,并且始终调用来自 discoverServices 的 onSuccess 回调,但是从未收到来自其他设备(我正在使用 2 个设备)的 txtServiceRecord。
这是我的完整代码:
c# - 枚举 IPP 打印机
我正在研究 Windows 10 中基于 DNS 的服务发现,并从 Build 中找到了这个视频。我对发现所做的唯一更改是将服务名称更改为“_ipp._tcp”。但是,即使我知道网络上有超过 15 台启用 IPP 的打印机(我可以使用 ipptool、IOS 和 Android 代码成功识别这些打印机),我也没有得到任何点击。
我已经检查并仔细检查了拼写错误。我在 appxmanifest 文件中包含了所有网络功能。
这是我的代码,非常简单:
有没有其他人有这方面的经验并且可以帮助找出为什么没有找到设备?我的查询正确吗?设置 DeviceWatcher 时我还需要做其他事情吗?
更新
我已经验证了请求正在创建,因为它们出现在 Wireshark 中。它们看起来与正在创建的其他 mdns 请求相同。我还验证了我可以创建返回发现设备的 SSDP 请求,所以我怀疑这是通过应用程序功能的网络权限问题。
cordova - 查找连接到同一网络的设备的 IP 地址和端口
我正在 angular/cordova 中为 iOS 和 Android 构建一个应用程序,我想在我的本地网络上(动态地)找到某个设备的 IP 和端口,以便能够发送发布请求并通过它的 API 与之交谈。
API 说我可以使用SSDP
或DNS-SD
发现该设备。我查找了这两个帮助程序,它们可以帮助我获取网络上所有连接设备的列表:
但就我而言,节点是一个服务器端框架,我不能只在我的应用程序中“要求”节点模块。去这里最合乎逻辑的方式是什么?我只是想获取我网络上所有连接设备的列表,这很难实现吗?
macos - 如何使用 `dns-sd` 发现所有具有特定 TLD 的域?
我正在尝试使用 TLD .ffhh发现所有域。这是位于汉堡的 Freifunk Meshnetwork 的 TLD。我在 Mac 终端中尝试了以下命令:
dns-sd -B _http._tcp ffhh.
我得到了这个输出,但之后什么也没有发生:
Browsing for _http._tcp.ffhh.
DATE: ---Thu 23 Jul 2015---
10:40:20.934 ...STARTING...
我想我使用 dns-sd 错误!?使用此 TLD 发现所有域的正确命令是什么?
java - 使用网络服务发现在 Java 服务器和 Android 客户端之间进行通信
我正在构建一个 Java 服务器应用程序(在 pc 上运行),它使用JmDNS将自身注册到本地网络,以及一个应该使用Network Service Discovery发现 java 服务器的 Android 客户端应用程序。
当我先运行android应用程序,然后运行java服务器时,应用程序成功发现注册的java服务器。
但是,当我第一次运行服务器然后运行 android 应用程序时,该onDiscoveryStarted
方法被调用但该onServiceFound
方法从未触发 - android 应用程序没有发现服务器。在我看来,这似乎是一种意想不到的行为。
成功案例:
Android 应用程序日志:
08-24 22:42:06.157 NSD_DISCOVER onCreate
08-24 22:42:06.373 NSD_DISCOVER:onDiscoveryStarted 服务发现开始
08-24 22:42:30.256 NSD_DISCOVER:onServiceFound 已知服务类型:_http._tcp。
08-24 22:42:30.293 NSD_DISCOVER: onServiceResolved 解决成功。名称:NsdApp,类型:._http._tcp,主机:/10.0.0.2,端口:52288
Java 服务器日志:
START
REGISTERED
END
WAITING_FOR_MESSAGE
hello world
END_THREAD
失败案例:
Android 应用程序日志:
08-24 22:05:21.690 NSD_DISCOVER﹕onCreate
08-24 22:05:21.908 NSD_DISCOVER﹕onDiscoveryStarted 服务发现开始
Java 服务器日志:
START
REGISTERED
END
WAITING_FOR_MESSAGE
服务器代码
客户端代码
}