Я получаю ответ от hue, когда отправляю следующий пакет со своего ПК.
sprintf(wrbuf,"%s","M-SEARCH* HTTP/1.0\r\n HOST: 239.255.255.250:1900\r\n MAN: \"ssdp:discover\"\r\n MX: 4\r\n ST: libhue:idl\r\n\r\n");
sendto(sd,&wrbuf,sizeof(wrbuf),0,(struct sockaddr *)&serv,(socklen_t)len);
ответ ниже.
recived: HTTP/1.1 200 OK
CACHE-CONTROL: max-age=100
EXT:
LOCATION: "ipofhue:80/description.xml"
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/0.1
ST: upnp:rootdevice
USN: uuid:2f402f80-da50-11e1-9b23-0017880a6643::upnp:rootdevice
хотя, если отправить тот же пакет с моего маршрутизатора openWRT, я не получу ответа от hue.
IP-адрес моего ПК — 10.10.10.130, IP-адрес hue — 10.10.10.109, а IP-адрес моего маршрутизатора br-lan — 10.10.10.254. Я не думаю, что мне нужно запускать miniupnpd с моего маршрутизатора, потому что, если я запущу его, он начнет отвечать с маршрутизатора, мне просто нужен ответ от сервера upnp, который работает на концентраторе hue, которого я не получаю.
Цепочка инструментов openwrt не позволяет пакету M-SEARCH достигать wan-порта. Он просто игнорирует журнал пакета .kernel, в котором говорится, что сообщение IGMP было от меня. Игнорирование. 4 февраля 06:18:55 user.info sysinit: Исходный адрес 172.22.xx.xx для группы 239.255.255.250 не находится ни в одной допустимой сети для восходящего VIF. –