【发布时间】:2014-02-08 08:31:30
【问题描述】:
我正在开发 LSP,我需要知道确切的 URL 是什么。
例如,假设用户正在使用 Firefox 浏览页面。我想获取页面的完整 URL,无论是 HTTP 还是 HTTPS。我该怎么做?
我可以通过获取 HTTP 请求标头(请求行和Host)来获取地址;但是协议(http,https)无法通过这种方式计算出来。
【问题讨论】:
标签: c++ windows winapi winsock2 winsock-lsp
我正在开发 LSP,我需要知道确切的 URL 是什么。
例如,假设用户正在使用 Firefox 浏览页面。我想获取页面的完整 URL,无论是 HTTP 还是 HTTPS。我该怎么做?
我可以通过获取 HTTP 请求标头(请求行和Host)来获取地址;但是协议(http,https)无法通过这种方式计算出来。
【问题讨论】:
标签: c++ windows winapi winsock2 winsock-lsp
LSP 位于 TCP/IP 协议栈中。如果端口号(例如 SSL 的 443)对您的目的不可靠,您将不得不检查 TCP 有效负载以确定数据包使用 SSL 还是 TLS。您必须保持状态,如果您可以看到 SSL/TLS 握手消息,那么您就会知道这是一次 HTTPS 连接尝试。
MSDN 上有关于握手SSL/TLS in Detail 的非常基本的描述。
【讨论】: