用于获取 mDNS 服务发现并获取其 IP 地址的 Linux 命令

Nav*_*G S 3 networking linux wireless-networking ip-address mdns

我正在从我的 WiFi 模块广播 mDNS 服务。我需要在我的 Linux PC 中找到它并获取它的 IP 地址。

  1. 我使用了 mdns-scan 命令,并列出了服务名称。
  2. 我使用了 avahi-browse --all 并且列出了我的服务名称。
  3. 但是我如何获得该服务的 IP 地址呢?这是我的要求。
  4. 在 Android 应用程序中,我可以获得服务的完整详细信息。在Linux下如何获取它?
  5. 我也尝试了 if config -a 和 nmap 。

use*_*686 5

我使用了 avahi-browse --all 并且列出了我的服务名称。

用于avahi-resolve --name将主机名映射到其 IP 地址。

或者,要使 mDNS*.local主机名在系统范围内可解析,您可以使用nss-mdns(使用 Avahi 后端)或 nss-resolve(使用 systemd-resolved 后端)。这将允许任何应用程序使用 mDNS 名称,就像它们是常规 DNS 一样。

在 Android 应用程序中,我可以获得服务的完整详细信息。在Linux下如何获取它?

在 Android 应用程序中,您正在使用操作系统提供的 API。同样,在 Linux 中,您应该使用操作系统提供的正确 API(libavahi-clientlibavahi-glib),而不是随机粘合在一起的 CLI 工具。您列出的所有工具均供系统管理员手动使用,而不是用于编写脚本。

DNS-SD 将服务的附加信息存储在 TXT 记录中。如 API 示例所示,“解析回调”函数将自动接收 TXT 记录数组作为参数,而无需执行任何额外操作。