이씨플라자 식구들이랑 함께 한 산행 사진들

이번주 토요일에는 수락산을 다녀올까 한다. 산행 공지하면서 지난번에 올린 이씨플라자 식구들이랑 함께 한 스키장 사진들에 이어 이제껏 다녀온 등산 사진을 모아 봤다. 토요일날 비가 온다는 얄궂은 소식이 있던데, 부디 비가 오지 않기를…
사용자 삽입 이미지

[PHP] Proxy 서버를 이용해서 원격 웹서버 내용 갖고 오기

이씨플라자는 중문으로 서비스되는 이씨플라자 중문 사이트가 따로 있고, 대부분의 사용자는 중국업체들이다. 서버는 현재 국내 KTNET IDC에 있다. 요즘 알 수 없는 이유(?)로 중국에서 이씨플라자 중문 사이트에 접속하는데 장애가 많이 발생해서, 이를 탐지하는 프로그램을 만들어야만 했다. 중국사용자 환경에서 접속을 테스트해야 하니깐 중국내 공개된 proxy 서버를 이용하기로 했다.

전에 올린 “MSXML2.ServerXMLHTTP 사용하여 원격 웹서버 내용 갖고 오기” 포스트에서 사용한 MSXML2.ServerXMLHTTP 컴포넌트를 사용하려고 했는데 허걱.. 이 컴포넌트는 Proxy 서버를 지정할 수 있는 방법을 제공하지 않는 것이다. 별 수 없이 막강한 함수를 갖고 있는 php를 좀 뒤져봤다. 역시 여기에는 해결책이 있었다.

Proxy 서버를 이용해서 http 통신을 하는 get_contents 라는 함수를 하나 만들어서 사용했다. 혹시나 Proxy 서버를 사용할 필요가 있으신 분들은 참고하시기를.

function get_contents($url, $proxy = "") {
    //이 부분은 반드시 필요하지는 않지만,
    //User-Agent를 체크하는 사이트가 있다면 필요함.
    $header = "User-Agent: Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;)";

    if (empty($proxy)) {
        // proxy를 사용하지 않음
        $opts = array(
            'http' => array(
                'request_fulluri' => true,
                'header' => $header
            ),
        );
    } else {
        // proxy를 사용함
        $opts = array(
            'http' => array(
                'proxy' => 'tcp://'.$proxy,
                'request_fulluri' => true,
                'header' => $header
            ),
        );
    }

    $context = stream_context_create($opts);
    $html = file_get_contents($url, false, $context);
    $html;
}

이씨플라자 식구들이랑 함께 한 스키장 사진들

겨울이다. 겨울. 스키 시즌이 돌아왔다. 아.. 스키타러 가고 싶다.
컴퓨터를 뒤져 이씨플라자 식구들이랑 같이 스키장 갔던 사진을 골라내서 한장으로 만들었다. 이 사진 보니 더 스키장 가고 싶다. 1월에는 꼭 가야쥐..꼬옥..
사용자 삽입 이미지