在php中检测curl useragent

时间:2014-03-21 13:16:02

标签: php user-agent

我正在使用这个脚本来检测php页面中的curl但是它没有工作......我总是得到#34; curl ua"     

if ($usera = "curl")
   echo "curl ua";
else 
   echo "no curl";

?>

2 个答案:

答案 0 :(得分:2)

确切的curl用户代理字符串将根据版本而有所不同。例如这一个:

curl/7.15.1 (i386-pc-win32) libcurl/7.15.1 OpenSSL/0.9.8a zlib/1.2.3

所以你可以做的是,检查代理字符串中是否存在curllibcurl

if(preg_match("/curl|libcurl/", $usera)){
    // do something ...
}

但如果curl客户端更改了Agent String,那么您将无法检测到它。例如,对于curl以下请求,我将用户代理更改为Opera 9.0

curl -A "Opera 9.0" http://www.example.com/

答案 1 :(得分:0)

用户可以更改Useragent,但可以通过以下方式识别默认设置:

function is_curl() {
    if (stristr($_SERVER["HTTP_USER_AGENT"], 'curl'))
        return true;
}