php – CURL用户代理
作者:互联网
那么如果客户端是curl,我如何检查使用codeigniter,然后为它返回不同的东西?
解决方法:
您可以在使用cURL时伪造用户代理,因此根据您知道它是cURL请求时发送的用户代理,这是毫无意义的.
例如:我最近写了一个应用程序,它从谷歌获取网址的页面.现在Google不喜欢这样,所以它只允许某个用户代理访问其pagerank服务器.解?使用cURL和Google欺骗用户代理将不再是明智之举.
故事的道德:cURL用户代理绝不可靠.
如果您仍想这样做,那么您应该能够像平常一样获得传递的用户代理
$userAgent=$_SERVER['HTTP_USER_AGENT'];
编辑快速测试证明了这一点:
dumpx.php:
<?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);
?>
dump.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没有默认的用户代理:它不会在请求头中传递它
标签:php,codeigniter,curl,user-agent 来源: https://codeday.me/bug/20190929/1832481.html