테스트 사이트 - 개발 중인 베타 버전입니다

curl 유료프록시 적용에 대해 문의합니다.

안녕하세요. 몇날 몇일을 프록시을 적용한 파싱프로그램 개발 중 무료프록시는 잘 되는데 실제로 사용할 유료 프록시에 접근하려 하니 안되네요..ㅠㅠ아래는 현재 제가 만들어서 사용하고 있는 curl 함수입니다.

 

</p>

<p>function CURL_FUNC($DATA)

{

    if (!$DATA['agent'])

        $DATA['agent'] = 'mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; trident/5.0)';</p>

<p>    $ch = curl_init();</p>

<p>    curl_setopt($ch, CURLOPT_URL, $DATA['url']);

    curl_setopt($ch, CURLOPT_HEADER, $DATA['header']);

    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    curl_setopt($ch, CURLOPT_USERAGENT, $DATA['agent']);

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

    @curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); </p>

<p>    if ($DATA['protocol'] == 'https')

    {

        if (!$DATA['sslver'])

            $DATA['sslver'] = 3;</p>

<p>        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

        curl_setopt($ch, CURLOPT_SSLVERSION, $DATA['sslver']);

    }</p>

<p>    if ($DATA['cookiem'])

        curl_setopt($ch, CURLOPT_COOKIEJAR, $DATA['cookie']);</p>

<p>    if ($DATA['cookieu'])

        curl_setopt($ch, CURLOPT_COOKIEFILE, $DATA['cookie']);

    

    if(!empty($DATA['data'])){

        $_post_data = @http_build_query($DATA['data'], '', '&');

        curl_setopt($ch, CURLOPT_POST, TRUE);

        curl_setopt($ch, CURLOPT_POSTFIELDS, $_post_data);

    }</p>

<p>    if(!empty($DATA['referer'])){

        curl_setopt($ch, CURLOPT_REFERER, $DATA['referer']);

    }</p>

<p>    if (!empty($DATA['proxyip']))

    {

        $proxy_ext = explode('|', $DATA['proxyip']);</p>

<p>        if (!empty($proxy_ext[0]))

        {

            curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); //TRUE를 설정하면 지정된 HTTP 프록시를 사용함.

            //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //CURLPROXY_HTTP(기본값) or CURLPROXY_SOCKS5 로 지정할 수 있음.

            //curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //옵션은 CURLAUTH_BASIC 및 CURLAUTH_NTLM 으로 지정 할 수 있음.

            curl_setopt($ch, CURLOPT_PROXY, $proxy_ext[0]);

            //curl_setopt($ch, CURLOPT_PROXYPORT, '포트번호'); 프록시 연결 포트번호를 지정. 이 포트번호는 CURLOPT_PROXY로 지정할 수 있음.

        }</p>

<p>        if (!empty($proxy_ext[1])) // 유료프록시 사용시에 필요함.

            curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_ext[1]);

    }</p>

<p>    $result = curl_exec($ch);

    $error_no = curl_errno($ch); //에러정보 출력

    $error_msg = curl_error($ch); //에러정보 출력

    curl_close($ch);</p>

<p>    if ($DATA['errorchk'] && $error_no)

        return '에러번호 : ' . $error_no . ' / 에러메세지 : ' . $error_msg;

    else if ($error_no)

        return $error_no;

    else

    {

        if ($DATA['charset'] == 'euc-kr')

            $result = iconv_utf8($result);</p>

<p>        return $result;

    }

}</p>

<p>

 

이것으로 위에서 얘기드린 것처럼 무료프록시는 잘 적용이 됩니다. 그런데 유료프록시를 적용하면  에러번호 : 56 / 에러메세지 : received http code 503 from proxy after connect 에러가 발생을 합니다. 프록시 관련 옵션을 이렇게도 바꿔보고 저렇게도 바꿔보는데 안되네요. ㅠㅠ

구글이나 기타 매체에서 검색을 통해 자료를 찾아 봤지만 자료가 많지가 않네요..ㅡㅡ''

curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_ext[1]);

$proxy_ext[1] 는 아이디:비밀번호로 해서 들어갑니다. 해당 계정은 유료프록시 사이트 회원가입한 아이디와 비밀번호를 넣었습니다.

이 부분에 대해 아시거나 도움 주시 수 있는 분들의 조언이 간절합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

무료와 유료의 차이점이라고 하면,  시큐리티 이슈 같습니다.

 

유료 서비스 업체에 문의를 드려 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고