Обнаружение устройства upnp

2616
jibe

Я слежу за этим и другими подобными постами, чтобы обнаружить моего dlna-способного оратора с протоколами upnp. Мой телефон (андроид) обнаруживает и управляет динамиком; но я хотел бы сделать это с моего компьютера и подключить его как ДНК.

Первый терминал:

$ cat test.txt M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: ssdp:discover MX: 10 ST: ssdp:all 

Второй терминал:

$ nc -buvv 239.255.255.250 1900 < test.txt Connection to 239.255.255.250 1900 port [udp/ssdp] succeeded! 

Третий терминал:

$ sudo tcpdump -vv -A -s 0 -i wlan0 udp port 1900 and host 239.255.255.250 15:56:10.949878 IP (tos 0x0, ttl 1, id 41655, offset 0, flags [DF], proto UDP (17), length 29) alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1 E.....@...$....~.......l. ..X 15:56:10.950707 IP (tos 0x0, ttl 1, id 41656, offset 0, flags [DF], proto UDP (17), length 29) alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1 E.....@...$....~.......l. ..X 15:56:11.951350 IP (tos 0x0, ttl 1, id 41732, offset 0, flags [DF], proto UDP (17), length 29) alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1 E.....@...$....~.......l. ..X 15:56:12.951929 IP (tos 0x0, ttl 1, id 41748, offset 0, flags [DF], proto UDP (17), length 29) alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1 E.....@...$....~.......l. ..X 15:56:13.952504 IP (tos 0x0, ttl 1, id 41788, offset 0, flags [DF], proto UDP (17), length 29) alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1 E....<@...$s...~.......l. ..X 15:56:13.960469 IP (tos 0x0, ttl 1, id 41789, offset 0, flags [DF], proto UDP (17), length 114) alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 86 E..r.=@...$....~.......l.^..M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: ssdp:discover MX: 10 ST: ssdp:all 

Похоже, это работает, но ничего не обнаружено.

У кого-нибудь есть представление о том, что я делаю не так?

Спасибо

2
Не уверен, почему ваше низкоуровневое обнаружение не работает, но я могу порекомендовать [pulseaudio-dlna] (https://github.com/masmu/pulseaudio-dlna) (доступно в виде пакета во многих дистрибутивах), если вы хотите передавать потоковый звук к устройствам, способным к DLNA. Это также должно относиться к открытию для вас, без необходимости запачкать руки в самих протоколах. dirkt 6 лет назад 0
Благодарю. Я пытался заставить его работать весь день, но безуспешно. Мне удалось установить pulseaudio и pulseaudio-dlna (не так просто на RPI с archlinux). Мне удалось немного шуметь с помощью pulseaudio, когда мой компьютер подключен через разъем на динамике, но невозможно протолкнуть звук через dlna ... Я думаю, что может быть более простой способ. Любая идея ? jibe 6 лет назад 0
Да. `pulseaudio-dlna` работал для меня прямо из коробки. Так что это может быть проблемой на другом уровне. У вас есть какой-нибудь эквивалент Debian `gupnp-tools` на Archlinux, так что вы можете сделать` gssdp-Discover -i wlan0 --timeout = 3` или `gupnp-universal-cp`? dirkt 6 лет назад 0
Не могу опубликовать весь ответ (ограничение ссылок!) Но в основном это сработало: jibe 6 лет назад 0
Не могу опубликовать полный ответ на gssdp-dicover (ограничение ссылок!) Но в основном это сработало и дало мне: (......) доступный ресурс USN: uuid: 5f9ec1b3-ed59-1900-4530-b8ee6552cc9b Расположение: http://192.168.1.125:8080/description.xml (.....). Это дало мне достаточно - по-видимому - для достижения моей цели! jibe 6 лет назад 0
Так что напишите и ответьте с тем, что вы сделали, и примите это сами (это нормально делать). Если вы можете узнать, почему другой метод не работает, это было бы бонусом, если у кого-то еще есть такая же проблема. dirkt 6 лет назад 0

1 ответ на вопрос

1
jibe

Используя комментарий dirkt, я смог обнаружить мое устройство

gssdp-Discover -i wlan0 --timeout = 3

Затем я адаптировал содержание этого поста: http://djoepnpoep.blogspot.co.za/2015/07/command-line-dlnaupnp-av-with-curl.html . Извините, я не могу опубликовать свое решение из-за ограничений репутации / ссылок ... Но быть осторожным с "и концом строк" довольно просто.

Сейчас я ищу более широкую документацию по элементам управления dlna (воспроизведение, остановка, пауза, возобновление, управление звуком)

Установка pulseaudio и pulseaudio-dlna не кажется мудрым решением для моих очень ограниченных потребностей.

Еще раз спасибо.

РЕДАКТИРОВАТЬ: после просмотра в этом направлении, я нашел несколько библиотек .js, которые, кажется, делают эту работу: https://github.com/rexboy7/plug.play.js