标签:php codeigniter curl user-agent
那么如果客户端是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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。