使用CURL检测坏链接引用者邻域

时间:2015-12-10 21:47:14

标签: php curl

我尝试使用CURL来评估我网站上的访问者。我想看看他们是否与坏社区挂钩。大部分时间我的当前代码都有效,但并非总是如此。

我在使用CURL能够欺骗所有服务器时遇到了一些麻烦。如何使我的CURL标题完全令人信服,并删除我使用CURL的任何可能的线索?

<?php 

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$vars);  //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$headers = array();
$headers[] = 'X-Apple-Tz: 0';
$headers[] = 'X-Apple-Store-Front: 143444,12';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$headers[] = 'Accept-Encoding: gzip, deflate';
$headers[] = 'Accept-Language: en-US,en;q=0.5';
$headers[] = 'Cache-Control: no-cache';
$headers[] = 'Content-Type: application/x-www-form-urlencoded; charset=utf-8';
$headers[] = 'Host: www.example.com';
$headers[] = 'Referer: http://www.example.com/index.php'; //Your referrer address
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0';
$headers[] = 'X-MicrosoftAjax: Delta=true';

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$server_output = curl_exec ($ch);

print $server_output;

curl_close ($ch);    

if (strpos($output,'sex') !== false) 
{
    echo 'sex';
}

?>

例如,某个知名的成人视频网站带有橙色徽标,看起来很像YouTube徽标(也许你们知道的那个)回复了这个:

403 Forbidden

Request forbidden by administrative rules. 
__SERVERNAME__

1 个答案:

答案 0 :(得分:1)

在chrome dev工具中,您可以通过以下方式获取针对URL使用的完整HTTP请求chrome:

  • 打开开发工具
  • 转到&#34;网络&#34;标签
  • 请求您想要的网址 - 如果您已经在目标网页上 - 点按F5或重新加载。
    然后,开发工具将生成一个HTTP请求(和响应)列表
  • 右键单击您感兴趣的HTTP请求/ URL
  • 点击&#34;另存为curl&#34;选项,您现在将在剪贴板中拥有完整的HTTP请求详细信息(用于命令行卷曲)。

通过在发送HTTP请求时使用这些值,您的请求表面上似乎是由Chrome网络浏览器制作的。