在php中检测curl useragent

问题描述 投票:0回答:2

我正在使用这个脚本来检测php页面中的curl但是它不起作用......我总是得到“curl ua”

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

?>
php user-agent
2个回答
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/

0
投票

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

function is_curl() {
    if (stristr($_SERVER["HTTP_USER_AGENT"], 'curl'))
        return true;
}
© www.soinside.com 2019 - 2024. All rights reserved.