从CLI获取curl响应,但从PHP访问被拒绝

voj3qocg  于 2022-11-30  发布在  PHP
关注(0)|答案(1)|浏览(148)

对于许多请求,我在使用curl从php得到拒绝访问错误,我的代码是:

$ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
    curl_setopt($ch, CURLOPT_URL, 'https://www.vueling.com/en');
    curl_setopt($ch, CURLOPT_TIMEOUT, '2');
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;

返回以下内容:

<H1>Access Denied</H1>

但是,如果我直接在命令行上运行它:

curl -v https://www.vueling.com/en

我得到了完整的响应,我的ip没有被阻止,我不知道为什么CLI工作,但PHP不工作?有人有什么想法吗?

ego6inou

ego6inou1#

curl的CLI版本可能会发送一个被该网站接受的用户代理,但curl的PHP版本可能会发送一个被拒绝的用户代理。
所以你必须检查curl发送的头在两种方式上是相似的。

相关问题