我想在使用代理时将自定义标头发送到主机。看看下面的例子。用例子解释情况更容易。
这按预期工作正常:
curl https://www.cloudflare.com/
Run Code Online (Sandbox Code Playgroud)
当我选择通过向curl提供主机的IP地址来避免使用DNS时:
curl http://198.41.214.163/
Run Code Online (Sandbox Code Playgroud)
网站给我这个错误页面 -->
“不允许直接 IP 访问。您请求的 IP 地址属于 CloudFlare 网络的一部分。必须提供有效的主机标头 才能访问所需的网站。”
如果我们提供正确的主机头名称,它将在不使用 DNS 的情况下再次正常工作:
curl --header "Host: cloudflare.com" http://198.41.214.163/
Run Code Online (Sandbox Code Playgroud)
但是,当我在使用代理隧道时执行相同操作时,curl 不会将标头发送到主机,因此我收到来自主机的“不允许直接 IP 访问”错误:
curl --proxy "http://PROXY_IP:PORT" --header "Host: cloudflare.com" http://198.41.214.163/
Run Code Online (Sandbox Code Playgroud)
我怎样才能克服这个问题?
这个问题应该在 cURL 7.37.0 中消失,它引入了--proxy-header参数来指定用于代理服务器的标头。用-H/给出的标头--header现在将被视为“仅限终端服务器”。
| 归档时间: |
|
| 查看次数: |
7077 次 |
| 最近记录: |