Требуется ответ mDNS для обнаружения службы с подтипами

Я пытаюсь выполнить обнаружение службы на основе подтипов.

Например, я запускаю avahi-publish -s --domain=local --subtype="_ann._sub._http._tcp" "serviceName" "_http._tcp" 5353 "текстовая запись".

Теперь я запрашиваю подтип ex: AT+MDNSSD=_ann,_sub,_http,_tcp,local.

Но ответ от авахи-публикации не содержит подтипа. Я получаю ответное сообщение с именем «serviceNaem._http._tcp.local».

Может ли кто-нибудь сказать, как я могу зарегистрировать службу с помощью avahi-publish, чтобы я мог получить ответ как «serviceName._ann._sub._http._tcp.local» в записи ресурса.


person user1808215    schedule 18.02.2013    source источник


Ответы (2)


Вы можете зарегистрировать подтипы, используя элемент <subtype></subtype> в файле службы (см. справочную страницу avahi.service https://linux.die.net/man/5/avahi.service).

Следующий пример работает для меня:

<service>
    <type>_http._tcp</type>
    <subtype>_ann._sub._http._tcp</subtype>
    <name>MyService</name>
    <port>12345</port>
<service>
person Brain    schedule 08.05.2017

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.

person strickli    schedule 03.01.2014