'avahi' 可以处理 IP 地址查找和主机名查找吗?

6 networking avahi

Ubuntu 使用“avahi”在本地网络上执行主机名查找,这使我可以通过在名称中添加“.local”来查找其他计算机,例如laptop.local 或desktop.local。

但是,avahi 似乎不会对本地网络上计算机的 IP 地址执行反向查找。因此,当应用程序查找本地计算机的 IP 地址时,会向 Internet 上的 Internet DNS 服务器发出请求,该服务器返回 NXDOMAIN(名称不存在)。

avahi 是否可以对 IP 地址执行反向查找?如果是,我该怎么做?

小智 7

是的,avahi 支持对本地网络上注册的 .local 名称进行反向 IP 地址查找。但是,大多数用于执行测试查询的命令直接联系 DNS 服务器,而不使用 avahi。为了确认这在命令行中是否有效,您必须使用该getent hosts命令而不是nslookup, dig, 或host

例如,您可以使用以下命令查找 IP 地址:

$ nslookup 192.168.0.1
$ dig -x 192.168.0.1
$ host 192.168.0.1
$ getent hosts 192.168.0.1
Run Code Online (Sandbox Code Playgroud)

只有该getent hosts命令会返回相应的名称,因为它是唯一使用 avahi 执行反向查找的命令。

(实际上,这也适用于查找名称,但通常只键入ping hostname.localwhich 使用 DNS 或 avahi 执行名称查找并同时检查连接性更简单。)


小智 5

dig 还可以使用 avahi 执行反向 DNS 查找:

dig -x 192.168.0.1 @224.0.0.251 -p 5353