gpt4 book ai didi

php - CURL 用户代理

转载 作者:可可西里 更新时间:2023-10-31 22:19:09 25 4
gpt4 key购买 nike

那么如果客户端是 curl,我如何使用 codeigniter 检查,然后返回不同的东西呢?

最佳答案

您可以在使用 cURL 时伪造用户代理,因此当您知道这是一个 cURL 请求时,根据发送的用户代理是没有意义的。

例如:我最近写了一个应用程序,它从谷歌获取一个 url 的 pagerank。现在谷歌不喜欢这样,所以它只允许特定的用户代理访问它的 pagerank 服务器。解决方案?使用 cURL 欺骗用户代理,Google 不会更聪明。

故事的寓意:cURL 用户代理根本不可靠。

如果您仍然想这样做,那么您应该能够像往常一样获取传递的用户代理

$userAgent=$_SERVER['HTTP_USER_AGENT'];

编辑 一个快速测试证明了这一点:

转储文件:

<?php

$url="http://localhost/dump.php";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if($_GET['u']==y) {
curl_setopt($ch, CURLOPT_USERAGENT, "booyah!");
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 0);
$exec=curl_exec ($ch);
?>

转储.php:

<?php
var_dump($_SERVER);
?>

案例 1:http://localhost/dumpx.php?u=y

 'HTTP_USER_AGENT' => string 'booyah!' (length=7)

案例 2:http://localhost/dumpx.php?u=n

没有 $_SERVER['HTTP_USER_AGENT']

这证明 curl 没有默认的用户代理:它不会在请求 header 中传递它

关于php - CURL 用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com