来自 ChromeCast 的 SSDP UDP 响应现在缺少 LOCATION 字段

Posted

技术标签:

【中文标题】来自 ChromeCast 的 SSDP UDP 响应现在缺少 LOCATION 字段【英文标题】:SSDP UDP Responses from ChromeCast now missing the LOCATION field 【发布时间】:2013-09-30 17:44:17 【问题描述】:

我正在通过 UDP 与我的 ChromeCast 进行交互。上周,发现请求运行良好。本周我得到的回复与上周不同。上周事情按照 DIAL 规范中的描述进行。本周我缺少 LOCATION 参数。而在我收到 LOCATION: 192.168.0.103:8008/ssdp/ssdp/device-desc.xml(或类似的东西)之前,本周我才回来 dp/device-desc。 xml 没有 LOCATION 或 IP 地址和端口前缀。我尝试在不同的网络上使用不同的 Chromecast,得到了相似但不相同的结果。我收到了一个 ssdp/device-desc.xml 和另一个 dp/device-desc.xml。 Chrome 似乎能够很好地检测到 ChromeCast。最近几天有什么变化吗?

这是我收到的示例响应:

M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 1
ST: urn:dial-multiscreen-org:service:dial:1

ssdp/device-desc.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 2bd4c9f6-1dd2-11b2-a755-8a9e9d005953
SERVER: Linux/3.8.13, UPnP/1.0, Portable SDK for UPnP devices/1.6.18
X-User-Agent: redsonic
ST: urn:dial-multiscreen-org:service:dial:1
USN: uuid:d47145ab-0bd2-d115-9d19-d93a7cb7ae80::urn:dial-multiscreen-org:service:dial:1
BOOTID.UPNP.ORG: 20
CONFIGID.UPNP.ORG: 1

【问题讨论】:

【参考方案1】:

对我来说,这看起来像是你的代码中的一个错误,它在执行 udp 接收。

您应该使用 tcpdump 或除您的代码之外的其他工具来验证响应数据包。

【讨论】:

以上是关于来自 ChromeCast 的 SSDP UDP 响应现在缺少 LOCATION 字段的主要内容,如果未能解决你的问题,请参考以下文章

ssdp安全-攻击和防御

iPhone 上的 SSDP

扩展 MediaRouteButton 行为

来自android的Chromecast不使用样式接收器

我用Wireshark抓包时过滤关键词用了http。 但是为啥我抓的包没有http协议,里面只有SSDP的协议。上个图

Chromecast 网络实现细节,并用 roku 复制它