왜 때로는이 오류가 발생합니까?UserAgent를 사용할 때 Curl 400 오류가 발생했습니다.
**Bad Request**
Your browser sent a request that this server could not understand.
Apache Server at control.digitalcoding.com Port 80
$UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11";
모든 것이 잘 작동은 불가능
오페라/7.52 (윈도우 NT 5.1; U) [EN] 모질라/5.0 (윈도우, U, 윈도우 NT 5.1, rv : 1.7.3) Gecko/20041001 Firefox/0.10.1 Mozilla/5.0 (Windows NT 6.1; rv : 10.0.1) Gecko/20100101 Firefox/10.0.1
예를 들어. 문제가 무엇입니까?
HtmlReciever.php
<?php
if(empty($_GET["Link"]))
{
echo "empty";
die;
}
$LinkToFetch = urldecode($_GET["Link"]);
$UserAgent = urldecode($_GET["UserAgent"]);
function iscurlinstalled()
{
if (in_array ('curl', get_loaded_extensions()))
{
return true;
}
else
{
return false;
}
}
// If curl is instaled
if(iscurlinstalled()==true)
{
$ch = curl_init($LinkToFetch);
curl_setopt($ch, CURLOPT_USERAGENT,$UserAgent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$HtmlCode = curl_exec($ch);
curl_close($ch);
}
else
{
$HtmlCode = file_get_contents($LinkToFetch);
}
echo $HtmlCode;
?>
내가이 서버에 따라이
그래, 내가 일하기 위해 그 스크립트를 실행할 때 크롬에 있어야한다고 말하는거야? 이것은 좋지 않습니다 .. 그리고 어떻게 내 스크립트/서버를 수정하여 UserAgent를 "스푸핑 (spoof)"시킬 수 있습니까? 나는 완전한 접근권을 가지고있다. – Master345
@RowMinds : Chrome에서 '있어야'할 필요는 없습니다. 위에 언급 한 사용자 에이전트 (실제로 작동하는 사용자 에이전트)를 통과하면 실제로는 Chrome 인 것처럼 보이며 심지어 PHP 스크립트라고 생각합니다. 사용자 에이전트는 Chrome에서 보낸 (이미했던 것처럼), Firefox 또는 원하는 브라우저를 가져가는 것만으로도 위장 할 수 있습니다. 자세한 내용은 내 업데이트 답변을 참조하십시오. – CodeZombie