ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] HTTPS 소켓으로 정보 가져오기 - via CURL
    카테고리 없음 2012. 11. 2. 11:51
    반응형

    이거 찾을려고 하루 고생함... 아~~ 속상해!! ㅜㅜ

    socket_create, fsockopen, snoopy class 다 써봤는데..
    CURL은 못 따라가는 거 같네용~

    이거 보시는 분들 고생하지 마시라고 참고 자료 올려놓습니다!!!

    refer : http://docs.php.net/curl_setopt#usernotes

    daniel at blacklotus dot no 15-Aug-2010 06:33
    Sime sites may protect themselves from remote logins by checking which site you came from.

    Then you might want to use CURLOPT_REFERER.

    <?php

    // $url = page to POST data
    // $ref_url = tell the server which page you came from (spoofing)
    // $login = true will make a clean cookie-file.
    // $proxy = proxy data
    // $proxystatus = do you use a proxy ? true/false

    function
    curl_grab_page($url,$ref_url,$data,$login,$proxy,$proxystatus){
        if(
    $login == 'true') {
           
    $fp = fopen("cookie.txt", "w");
           
    fclose($fp);
        }
       
    $ch = curl_init();
       
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
       
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
       
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
       
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
       
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        if (
    $proxystatus == 'true') {
           
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
           
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
        }
       
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
       
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

       
    curl_setopt($ch, CURLOPT_URL, $url);
       
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       
    curl_setopt($ch, CURLOPT_REFERER, $ref_url);

       
    curl_setopt($ch, CURLOPT_HEADER, TRUE);
       
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
       
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
       
    curl_setopt($ch, CURLOPT_POST, TRUE);
       
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
       
    ob_start();
        return
    curl_exec ($ch); // execute the curl command
       
    ob_end_clean();
       
    curl_close ($ch);
        unset(
    $ch);
    }

    echo
    curl_grab_page("https://www.example.net/login.php", "https://www.example.net/", "username=foo&password=bar", "true""null", "false");

    ?>
Designed by Tistory.