2

我正在使用此代码使用私有代理 [4 ips] 测试我的 Awstats

curl_setopt($ch, CURLOPT_URL, "http://example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET,1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);  
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_PROXY, trim($privateproxylist[$p]));   

当我检查我的统计数据时,我可以看到访问和参考,但是有没有任何选项可以让这个脚本在 CURLOPT_URL 上为每个代理停留 60 秒?谢谢

4

1 回答 1

1

根据我发现的网页:

根据访问者第一次和最后一次访问文档之间的时间,AWStats 尝试计算平均访问持续时间。

因此,您需要等待 60 秒,然后再次向该网站发出请求。由于我不了解 AWStats 的内部结构,您可能需要使用不同的页面 url,但理论上,您应该能够只请求相同的 url。因此,它只是以下情况:

// 1. Make your curl request to URL
// 2. Wait 60s
sleep(60);
// 3. Make the curl request again 
// 4. Change proxy and go back to step 1

当然这是同步的,所以脚本至少运行 4 分钟(基于 4 个代理 ip),所以不要忘记将 php 脚本的执行时间限制设置为无限制(或非常高)。

您可能还需要在 curl 资源上设置“cookiejar”配置,因为 awstats 可以使用会话 cookie 或类似的东西来识别访问者。因此需要设置一个 cookiejar 文本文件,以便可以存储会话 cookie,然后在第二个请求时重新发送。在使用新的代理 ip 之前不要忘记清除 cookie 文件(或者只是在选项中设置一个新的文本文件)。

于 2013-08-07T12:17:20.807 回答