XAddr 验证规则

在 WSDAPI 发送 HTTP 消息(如元数据请求)之前, 将 (XAddrsResolveMatches 消息中包含的 XAddrs) 传输地址进行基本验证。

这是为了确保 XAddrs 与客户端位于同一子网中。

以下 XML 显示了一个示例 XAddrs 元素。 wsd 前缀引用命名空间 https://schemas.xmlsoap.org/ws/2005/04/discovery

<wsd:XAddrs>
    https://192.168.0.2:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
</wsd:XAddrs>

在 HTTP 消息通过网络发出之前,必须满足以下所有条件。

  • XAddrs 必须是 HTTP 或 HTTPS 地址。 忽略其他方案的 XAddrs。
  • 如果存在任何 HTTPS XAddrs,则所有 XAddrs 都必须是 HTTPS。 包含 HTTP 和 HTTPS 地址的 XAddr 部分将被完全忽略。 此外,设备的终结点地址必须与 HTTPS XAddrs 完全匹配。
  • XAddrs 必须是可通过 DNS 解析的 IP 地址或主机名。 通常使用 IP 地址。
  • XAddrs (中包含的至少一个 IP 地址或从 XAddrs) 中包含的主机名解析的 IP 地址必须与接收 ProbeMatchesResolveMatches 消息的适配器位于同一子网中。
  • 第一个 XAddr 中指定的地址和端口必须可访问。 WSDAPI 在建立 HTTP 连接时尝试连接到此地址。

ProbeMatches

ResolveMatches

发现和元数据交换消息模式