2

このコードを使用して、プライベート プロキシで Awstats をテストしています [4 ips]

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 秒待ってから、再度 Web サイトにリクエストを送信する必要があります。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 スクリプトの実行時間制限を無制限 (または非常に長く) に設定することを忘れないでください。

awstats は訪問者を識別するためにセッション Cookie などを使用する場合があるため、curl リソースに「cookiejar」構成を設定する必要がある場合もあります。そのため、cookiejar テキスト ファイルを設定する必要があります。これにより、セッション Cookie を保存し、2 番目の要求で再送信できます。新しいプロキシ IP を使用する前に、Cookie ファイルをクリアする (またはオプションで新しいテキスト ファイルを設定する) ことを忘れないでください。

于 2013-08-07T12:17:20.807 に答える