1

私はカスタムphpプロキシクラスを持っています=>

class Proxy
{
    private $proxy,
            $header,
            $timeout,
            $agent;

    public function __construct($proxy, $header = null, $timeout = null, $agent = null) {
        $this->proxy   = $proxy;
        $this->header  = empty($header)  ? 1 : $header;
        $this->timeout = empty($timeout) ? 5 : $timeout;
        $this->agent   = empty($agent)   ? "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" : $agent;
    }

    public function set_proxy($proxy) {
        $this->proxy = $proxy;
    }

    public function get_page($url, $referer = "http://www.google.com/") {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, $this->header);

        curl_setopt($ch, CURLOPT_PROXY, $this->proxy);
        curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
        curl_setopt($ch, CURLOPT_REFERER, $referer);
        curl_setopt($ch, CURLOPT_USERAGENT, $this->agent);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $result = array();
        $result['exe'] = curl_exec($ch);
        $result['inf'] = curl_getinfo($ch);
        $result['err'] = curl_error($ch);

        curl_close($ch);

        return $result;
    }
}

私はそのように初期化します=>

    $proxy = new Proxy("PROXY_IP:PROXY_PORT");
    $content = $proxy->get_page($url);

そして、数日前まではすべてが正常に機能していました。現在、主にに関連するエラーメッセージが表示され続けていますReceived HTTP code 403 from proxy after CONNECT。変更されていないコードがどのように機能しなくなるのかわからないので、この問題をデバッグする方法すらわかりません。

どんな助けでもいただければ幸いです。ありがとう!

編集:403ステータスコードの意味を知っています。使用しているプロキシや、使用しようとしているページに関係なく、403を取得していると言っています。

4

1 に答える 1

0

ステータスコードを知る:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

403「禁止」を意味します。私はあなたが彼らのサービスを利用するのに十分に信頼できないとあなたが代理した、またはそこから決定した人を推測します。または、アクセスする実際のプロキシにパスワードが設定されています。

于 2012-11-24T00:43:46.923 に答える