编程语言
首页 > 编程语言> > php – CURL用户代理

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