需要使用子类型进行服务发现的mDNS响应

时间:2013-02-18 08:31:37

标签: avahi

我正在尝试基于子类型进行服务发现。

例如我正在运行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”。

1 个答案:

答案 0 :(得分:0)

avahi-browse没有明确列出子类型。如果你知道你在寻找什么,你可以过滤它,但是:

[localhost]$ avahi-publish -s --subtype=_ann._sub._http._tcp  serviceName _http._tcp 5353 &
[1] 3012

[localhost]$ avahi-browse -t _http._tcp
+ eth0 IPv4 serviceName                                   Web Site             local
[localhost]$ avahi-browse -t _ann._sub._http._tcp
+ eth0 IPv4 serviceName                                   Web Site             local

[localhost]$ kill 3012

如果您不发布子类型,则对其进行过滤将不会返回任何内容:

[localhost]$ avahi-publish -s serviceName _http._tcp 5353 &
[1] 3026

[localhost]$ avahi-browse -t _http._tcp
+ eth0 IPv4 serviceName                                   Web Site             local
[localhost]$ avahi-browse -t _ann._sub._http._tcp

[localhost]$ kill 3026

如果您使用[wire | t] shark监视流量,过滤端口5353,您将看到您的子类型在DNS查询中作为PTR记录返回。