1

プロキシを追加したい Pagerank チェック スクリプトがあります。私は通常 Curl を使用しているため、プロキシ経由でリクエストを行う方法が正確にはわかりません。リクエストで $proxies 配列からランダムなプロキシを選択し、それをリクエストに使用するようにします。このスクリプトを使用してこれを行う方法を説明してもらえますか? 前もって感謝します。

$proxyauth = "username:password";

$proxies = array(
    "proxy1",
    "proxy2",
    "proxy3",
    "proxy4",
    "proxy5",
    "proxy6",
    "proxy7",
    "proxy8",
    "proxy9",
    "proxy10"
);

function check($page){
    // Open a socket to the toolbarqueries address, used by Google Toolbar
    $socket = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30);

    // If a connection can be established
    if($socket) {
        // Prep socket headers
        $out = "GET /tbr?client=navclient-auto&ch=".$this->checkHash($this->createHash($page))
                ."&features=Rank&q=info:".$page."&num=100&filter=0 HTTP/1.1\r\n";
        $out .= "Host: toolbarqueries.google.com\r\n";
        $out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP         5.1)\r\n";
        $out .= "Connection: Close\r\n\r\n";

        // Write settings to the socket
        fwrite($socket, $out);

        // When a response is received...
        $result = "";
        while(!feof($socket)) {
            $data = fgets($socket, 128);
            $pos = strpos($data, "Rank_");
            if($pos !== false){
                $pagerank = substr($data, $pos + 9);
                $result += $pagerank;
            }
        }
        // Close the connection
        fclose($socket);

        // Return the rank!
        return $result;
    }
}
4

1 に答える 1

3

では、選択したプロキシに接続するfsockopen代わりに。toolbarqueries.google.com次に、GET 要求で完全な URL を送信します。

$socket = fsockopen("proxy5", 80, $errno, $errstr, 30);
...
$out = "GET http://toolbarqueries.google.com/tbr?client=..."

ヘッダーは引き続き送信できますHostが、必要ありません。

于 2012-11-16T21:10:00.410 に答える